diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index ed5e35a..f211910 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -42,6 +42,9 @@ jobs: KERNEL_SIGNING_KEY: ${{ secrets.KERNEL_SIGNING_KEY }} KERNEL_PUBLIC_KEY: ${{ vars.KERNEL_PUBLIC_KEY }} + - name: Keep the published sitemap (to tell search engines what changed) + run: curl -fsSL https://kernelpath.dev/sitemap.xml -o "$RUNNER_TEMP/previous-sitemap.xml" || true + - name: Setup Pages uses: actions/configure-pages@v6 @@ -53,3 +56,7 @@ jobs: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v5 + + - name: Tell search engines about new and changed pages (IndexNow) + continue-on-error: true + run: node scripts/indexnow.mjs "$RUNNER_TEMP/previous-sitemap.xml" dist/sitemap.xml diff --git a/README.md b/README.md index cb32d94..b872764 100644 --- a/README.md +++ b/README.md @@ -4,16 +4,16 @@ **Read it online: https://kernelpath.dev/** -**Learn Ansible automation by doing.** A free, interactive course and home-lab build that takes you from your first playbook to automating real Linux administration on RHEL 9. It teaches the Ansible skills that DevOps and system administration teams use every day. It is written by learners, for learners, as a way to study together: short explanations combine browser activities, real Linux labs, quizzes, and summaries. A learning dashboard keeps reading, practice, confidence, and local grading evidence separate. +**Free RHCSA and RHCE study courses, learned by doing.** Two interactive paths on RHEL 9: [Linux system administration for the RHCSA (EX200)](https://kernelpath.dev/rhel9-sysadmin/) and [Ansible automation for the RHCE (EX294)](https://kernelpath.dev/rhel9-ansible/). Short lessons with diagrams you can click, practice terminals in the browser, quizzes, cheat sheets, and graded exercises on a practice lab you build on your own computer. It is written by learners, for learners. Exam study maps link every objective to the lessons that teach it: [RHCSA objectives](https://kernelpath.dev/rhel9-sysadmin/ch22/rhcsa-exam-objectives/), [RHCE objectives](https://kernelpath.dev/rhel9-ansible/ch11/rhce-exam-objectives/). -> An independent, community-made study companion. Not affiliated with, sponsored by, or endorsed by Red Hat, Inc. It is not official training material and does not replace Red Hat's courses or documentation. +> An independent, community-made study companion. Not affiliated with, sponsored by, or endorsed by Red Hat, Inc. Red Hat, RHEL, RHCSA and RHCE are trademarks of Red Hat, Inc. It is not official training material and does not replace Red Hat's courses or documentation. ## Programs | Program | Status | | --- | --- | -| **Ansible automation on RHEL 9** (`rhel9-ansible`) | Complete: 12 chapters, from building the practice lab to Git and development containers, with two integrated assessments | -| **Linux system administration on RHEL 9** (`rhel9-sysadmin`) | Planned: a 22-chapter outline | +| **Ansible automation on RHEL 9** (`rhel9-ansible`) | For the RHCE (EX294). Complete: 12 chapters, from building the practice lab to Git and development containers, with two integrated assessments | +| **Linux system administration on RHEL 9** (`rhel9-sysadmin`) | Complete: 22 chapters for the RHCSA (EX200), with guided exercises, graded labs and a capstone | ## Quick start diff --git a/content/interface.json b/content/interface.json index b9153ff..2abebb6 100644 --- a/content/interface.json +++ b/content/interface.json @@ -20,7 +20,7 @@ "a6": "RHEL 9 documentation", "strong": "An independent, community-made study companion. Not affiliated with, sponsored by, or endorsed by Red Hat, Inc.", "siteFooterDisclaimer": "This is not official training material and is no substitute for Red Hat's courses, documentation or exam objectives, which remain the authoritative sources.", - "p2": "Red Hat, Red Hat Enterprise Linux and Ansible are trademarks or registered trademarks of Red Hat, Inc. or its subsidiaries in the United States and other countries. Linux is a registered trademark of Linus Torvalds. All other trademarks belong to their respective owners. These names are used only to describe what the guide is about.", + "p2": "Red Hat, Red Hat Enterprise Linux, RHCSA, RHCE and Ansible are trademarks or registered trademarks of Red Hat, Inc. or its subsidiaries in the United States and other countries. Linux is a registered trademark of Linus Torvalds. All other trademarks belong to their respective owners. These names are used only to describe what the guide is about.", "p3": "\u00a9 ", "p4": " contributors. Text and diagrams are licensed under", "href4": "https://creativecommons.org/licenses/by/4.0/", diff --git a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/01-overview.md b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/01-overview.md index 8b537e0..016d3b2 100644 --- a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/01-overview.md +++ b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/01-overview.md @@ -1,5 +1,7 @@ --- title: What you are building +seoTitle: "Build an Ansible Practice Lab at Home" +description: "What the free RHCE lab looks like: a control node and four managed hosts on a sealed network. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 10 --- diff --git a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/02-prepare-host.md b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/02-prepare-host.md index d35df67..d6f486d 100644 --- a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/02-prepare-host.md +++ b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/02-prepare-host.md @@ -1,5 +1,7 @@ --- title: Prepare the host and LXD +seoTitle: "Prepare the host and LXD: RHCE Home Lab Setup" +description: "Prepare the host and LXD: part of building a free RHCE practice lab at home with Rocky Linux 9 virtual machines on LXD." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/03-network-and-seal.md b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/03-network-and-seal.md index 3f2ab16..a1efccc 100644 --- a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/03-network-and-seal.md +++ b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/03-network-and-seal.md @@ -1,5 +1,7 @@ --- title: Create and seal the lab network +seoTitle: "Create and seal the lab network: RHCE Home Lab Setup" +description: "Create and seal the lab network: part of building a free RHCE practice lab at home with Rocky Linux 9 virtual machines on LXD." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/04-project-profile-disks.md b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/04-project-profile-disks.md index 4bcfb10..bd64af6 100644 --- a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/04-project-profile-disks.md +++ b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/04-project-profile-disks.md @@ -1,5 +1,7 @@ --- title: Project, profile and extra disks +seoTitle: "Project, profile and extra disks: RHCE Home Lab Setup" +description: "Project, profile and extra disks: part of building a free RHCE practice lab at home with Rocky Linux 9 virtual machines on LXD." kind: lab minutes: 17 --- diff --git a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/05-create-and-verify-vms.md b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/05-create-and-verify-vms.md index ac24897..fba71c7 100644 --- a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/05-create-and-verify-vms.md +++ b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/05-create-and-verify-vms.md @@ -1,5 +1,7 @@ --- title: Create the VMs and check the seal +seoTitle: "Create the VMs and check the seal: RHCE Home Lab Setup" +description: "Create the VMs and check the seal: part of building a free RHCE practice lab at home with Rocky Linux 9 virtual machines on LXD." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/06-control-node.md b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/06-control-node.md index 612a263..7314d38 100644 --- a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/06-control-node.md +++ b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/06-control-node.md @@ -1,5 +1,7 @@ --- title: Prepare the control node +seoTitle: "Prepare the control node: RHCE Home Lab Setup" +description: "Prepare the control node: part of building a free RHCE practice lab at home with Rocky Linux 9 virtual machines on LXD." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/07-snapshots-and-rht-vmctl.md b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/07-snapshots-and-rht-vmctl.md index 7e9fc76..bc50f6d 100644 --- a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/07-snapshots-and-rht-vmctl.md +++ b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/07-snapshots-and-rht-vmctl.md @@ -1,5 +1,7 @@ --- title: Snapshots and rht-vmctl +seoTitle: "Snapshots and rht-vmctl: RHCE Home Lab Setup" +description: "Snapshots and rht-vmctl: part of building a free RHCE practice lab at home with Rocky Linux 9 virtual machines on LXD." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/08-first-project-and-daily-use.md b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/08-first-project-and-daily-use.md index dbc2e3f..0e833fd 100644 --- a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/08-first-project-and-daily-use.md +++ b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/08-first-project-and-daily-use.md @@ -1,5 +1,7 @@ --- title: First project and daily use +seoTitle: "First project and daily use: RHCE Home Lab Setup" +description: "First project and daily use: part of building a free RHCE practice lab at home with Rocky Linux 9 virtual machines on LXD." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/09-troubleshooting.md b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/09-troubleshooting.md index a6abe2b..1fca83c 100644 --- a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/09-troubleshooting.md +++ b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/09-troubleshooting.md @@ -1,5 +1,7 @@ --- title: Troubleshooting and fast rebuild +seoTitle: "Troubleshooting and fast rebuild: RHCE Home Lab Setup" +description: "Troubleshooting and fast rebuild: part of building a free RHCE practice lab at home with Rocky Linux 9 virtual machines on LXD." kind: summary minutes: 10 --- diff --git a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/_chapter.yml b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/_chapter.yml index 12f5e9a..3b506c1 100644 --- a/content/programs/rhel9-ansible/chapters/ch01-lab-setup/_chapter.yml +++ b/content/programs/rhel9-ansible/chapters/ch01-lab-setup/_chapter.yml @@ -1,4 +1,6 @@ title: Build Your Practice Lab +seoTitle: "Free RHCE Practice Lab at Home for Ansible" +seoDescription: "Build a free RHCE practice lab at home: a control node and four managed Rocky Linux 9 hosts on LXD, sealed and resettable with snapshots." setup: true goal: Build a sealed, classroom-style practice lab at home, with Rocky Linux 9 VMs on LXD using the classroom's names, addresses and users, so you can try every exercise in this guide. objectives: diff --git a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/01-why-automate.md b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/01-why-automate.md index 3655a68..61ab59c 100644 --- a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/01-why-automate.md +++ b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/01-why-automate.md @@ -1,5 +1,7 @@ --- title: Why automate Linux administration +seoTitle: "Why Automate Linux Administration With Ansible" +description: "What automation solves, idempotence and why teams move from scripts to Ansible. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 6 --- diff --git a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/02-what-is-ansible.md b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/02-what-is-ansible.md index ec29e15..dacef72 100644 --- a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/02-what-is-ansible.md +++ b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/02-what-is-ansible.md @@ -1,5 +1,7 @@ --- title: What Ansible is +seoTitle: "What Is Ansible? Agentless Automation Explained" +description: "Ansible in plain words: agentless, SSH-based, declarative tasks and modules. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 7 --- diff --git a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/03-architecture.md b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/03-architecture.md index 5bc9bc5..e731f64 100644 --- a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/03-architecture.md +++ b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/03-architecture.md @@ -1,5 +1,7 @@ --- title: Core concepts and architecture +seoTitle: "Ansible Architecture: Control Node, Inventory, Modules" +description: "The parts of Ansible: control node, managed hosts, inventory, modules, plays and playbooks. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 10 --- diff --git a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/04-automation-platform.md b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/04-automation-platform.md index b9b5d94..85f17c6 100644 --- a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/04-automation-platform.md +++ b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/04-automation-platform.md @@ -1,5 +1,7 @@ --- title: Ansible distributions and AAP 2 +seoTitle: "ansible-core vs Ansible vs AAP 2 Explained" +description: "The Ansible distributions: ansible-core, the community package and Ansible Automation Platform. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 9 --- diff --git a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/05-control-node-and-hosts.md b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/05-control-node-and-hosts.md index 48e9314..316fa9f 100644 --- a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/05-control-node-and-hosts.md +++ b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/05-control-node-and-hosts.md @@ -1,5 +1,7 @@ --- title: Preparing the control node and managed hosts +seoTitle: "Install Ansible and Prepare Managed Hosts" +description: "Install ansible-core on the control node and prepare managed hosts with SSH keys and sudo. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 8 --- diff --git a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/06-lab-installing-ansible.md b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/06-lab-installing-ansible.md index 14ce0a8..8300dda 100644 --- a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/06-lab-installing-ansible.md +++ b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/06-lab-installing-ansible.md @@ -1,5 +1,7 @@ --- title: "Exercise: Installing Ansible" +seoTitle: "Installing Ansible (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: installing Ansible. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/07-quiz.md b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/07-quiz.md index 8849ed0..2de4f9e 100644 --- a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/07-quiz.md +++ b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/07-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Ansible basics quiz" +seoTitle: "Ansible basics Quiz: RHCE Practice Questions" +description: "Test yourself on Ansible basics with RHCE practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 5 --- diff --git a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/08-summary.md b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/08-summary.md index 6913444..42cfaa2 100644 --- a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/08-summary.md +++ b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/08-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Ansible basics cheat sheet" +seoTitle: "Ansible basics Cheat Sheet (RHCE)" +description: "Ansible basics cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCE study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/09-linux-readiness.md b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/09-linux-readiness.md index 7a3e3c3..8420dd1 100644 --- a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/09-linux-readiness.md +++ b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/09-linux-readiness.md @@ -1,5 +1,7 @@ --- title: Check your Linux foundations +seoTitle: "Linux Skills You Need Before Learning Ansible" +description: "Check the Linux foundations Ansible assumes: shell, SSH, sudo, services and files. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 6 --- diff --git a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/_chapter.yml b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/_chapter.yml index 2b03167..3416c10 100644 --- a/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/_chapter.yml +++ b/content/programs/rhel9-ansible/chapters/ch02-introducing-ansible/_chapter.yml @@ -1,4 +1,6 @@ title: Introducing Ansible +seoTitle: "Introduction to Ansible: What It Is and How It Works (RHCE)" +seoDescription: "What Ansible is, why automate Linux administration, its architecture, and how to prepare a control node and managed hosts." goal: Understand what Ansible is, why it matters, how it is put together, and get a working control node with automation content navigator. objectives: - Explain why automation beats manual administration, and what Infrastructure as Code means. diff --git a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/01-inventory.md b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/01-inventory.md index 565d488..aaae796 100644 --- a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/01-inventory.md +++ b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/01-inventory.md @@ -1,5 +1,7 @@ --- title: Building an Ansible inventory +seoTitle: "Ansible Inventory File Examples: INI and YAML" +description: "Build static inventories with hosts, groups, ranges and nested groups, in INI and YAML. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/02-lab-inventory.md b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/02-lab-inventory.md index e88cc81..7168b41 100644 --- a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/02-lab-inventory.md +++ b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/02-lab-inventory.md @@ -1,5 +1,7 @@ --- title: "Exercise: Building an inventory" +seoTitle: "Building an inventory (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: building an inventory. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/03-configuration.md b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/03-configuration.md index fcb013c..0a417a3 100644 --- a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/03-configuration.md +++ b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/03-configuration.md @@ -1,5 +1,7 @@ --- title: Managing Ansible configuration files +seoTitle: "ansible.cfg Explained: Configuration File Examples" +description: "Where Ansible reads ansible.cfg, the settings that matter and how to check them. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/04-lab-configuration.md b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/04-lab-configuration.md index aad6daf..879b64f 100644 --- a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/04-lab-configuration.md +++ b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/04-lab-configuration.md @@ -1,5 +1,7 @@ --- title: "Exercise: Configuration files" +seoTitle: "Configuration files (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: configuration files. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/05-writing-playbooks.md b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/05-writing-playbooks.md index 368d3ec..db47d70 100644 --- a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/05-writing-playbooks.md +++ b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/05-writing-playbooks.md @@ -1,5 +1,7 @@ --- title: Writing and running playbooks +seoTitle: "Write Your First Ansible Playbook (With Examples)" +description: "Write and run an Ansible playbook: plays, tasks, modules, check mode and idempotence. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/06-lab-playbooks.md b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/06-lab-playbooks.md index e776d34..af71c14 100644 --- a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/06-lab-playbooks.md +++ b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/06-lab-playbooks.md @@ -1,5 +1,7 @@ --- title: "Exercise: Writing and running playbooks" +seoTitle: "Writing and running playbooks (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: writing and running playbooks. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/07-multiple-plays.md b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/07-multiple-plays.md index 273f1d5..b784599 100644 --- a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/07-multiple-plays.md +++ b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/07-multiple-plays.md @@ -1,5 +1,7 @@ --- title: Implementing multiple plays +seoTitle: "Ansible Playbook With Multiple Plays and become" +description: "Use several plays in one playbook, privilege escalation with become and per-play settings. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 10 --- diff --git a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/08-modules-and-yaml.md b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/08-modules-and-yaml.md index c295583..994cc87 100644 --- a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/08-modules-and-yaml.md +++ b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/08-modules-and-yaml.md @@ -1,5 +1,7 @@ --- title: Finding modules and YAML syntax +seoTitle: "Find Ansible Modules With ansible-doc, and YAML Syntax" +description: "Find and read modules with ansible-doc and write correct YAML for playbooks. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/09-lab-multiple-plays.md b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/09-lab-multiple-plays.md index b49532e..43cde1a 100644 --- a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/09-lab-multiple-plays.md +++ b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/09-lab-multiple-plays.md @@ -1,5 +1,7 @@ --- title: "Exercise: Implementing multiple plays" +seoTitle: "Implementing multiple plays (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: implementing multiple plays. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/10-chapter-lab.md b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/10-chapter-lab.md index 0781795..66d99f2 100644 --- a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/10-chapter-lab.md +++ b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/10-chapter-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Implementing a playbook" +seoTitle: "Ansible playbooks Practice Lab (RHCE Exam Style)" +description: "Graded RHCE exam-style lab on Ansible playbooks: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/11-quiz.md b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/11-quiz.md index 9a32272..30b821b 100644 --- a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/11-quiz.md +++ b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/11-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Ansible playbooks quiz" +seoTitle: "Ansible playbooks Quiz: RHCE Practice Questions" +description: "Test yourself on Ansible playbooks with RHCE practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 8 --- diff --git a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/12-summary.md b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/12-summary.md index 9fed280..b3310eb 100644 --- a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/12-summary.md +++ b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/12-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Ansible playbooks cheat sheet" +seoTitle: "Ansible playbooks Cheat Sheet (RHCE)" +description: "Ansible playbooks cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCE study notes." kind: summary minutes: 6 --- diff --git a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/_chapter.yml b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/_chapter.yml index e9ced6b..33a8903 100644 --- a/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/_chapter.yml +++ b/content/programs/rhel9-ansible/chapters/ch03-implementing-playbooks/_chapter.yml @@ -1,4 +1,6 @@ title: Implementing an Ansible Playbook +seoTitle: "Ansible Inventory, ansible.cfg and First Playbooks (RHCE)" +seoDescription: "Build an Ansible inventory, configure ansible.cfg and write and run your first playbooks with modules and YAML. RHCE chapter 3." goal: Build an inventory, configure Ansible for your project, and write and run playbooks with one or more plays. objectives: - Write static INI inventories with groups, nested groups and host ranges, and verify them. diff --git a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/01-variables.md b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/01-variables.md index cfac982..52b2a86 100644 --- a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/01-variables.md +++ b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/01-variables.md @@ -1,5 +1,7 @@ --- title: Variables in playbooks +seoTitle: "Ansible Variables in Playbooks With Examples" +description: "Define and use variables in plays, vars files, registered results and the command line. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/02-scope-and-precedence.md b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/02-scope-and-precedence.md index 87af983..1a041a8 100644 --- a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/02-scope-and-precedence.md +++ b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/02-scope-and-precedence.md @@ -1,5 +1,7 @@ --- title: Host and group variables, and precedence +seoTitle: "Ansible host_vars, group_vars and Variable Precedence" +description: "Where to put host and group variables and which value wins under Ansible precedence. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/03-lab-variables.md b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/03-lab-variables.md index c46b114..e352e82 100644 --- a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/03-lab-variables.md +++ b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/03-lab-variables.md @@ -1,5 +1,7 @@ --- title: "Exercise: Managing variables" +seoTitle: "Managing variables (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: managing variables. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/04-ansible-vault.md b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/04-ansible-vault.md index 59a794c..aeda925 100644 --- a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/04-ansible-vault.md +++ b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/04-ansible-vault.md @@ -1,5 +1,7 @@ --- title: Protecting secrets with Ansible Vault +seoTitle: "Ansible Vault Tutorial: Encrypt Secrets in Playbooks" +description: "Encrypt files and variables with ansible-vault and run playbooks with vault passwords. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/05-lab-vault.md b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/05-lab-vault.md index 82ec571..26b9f9f 100644 --- a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/05-lab-vault.md +++ b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/05-lab-vault.md @@ -1,5 +1,7 @@ --- title: "Exercise: Managing secrets" +seoTitle: "Managing secrets (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: managing secrets. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/06-facts.md b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/06-facts.md index c1cf764..1dbc854 100644 --- a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/06-facts.md +++ b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/06-facts.md @@ -1,5 +1,7 @@ --- title: Ansible facts +seoTitle: "Ansible Facts: gather_facts and setup Module" +description: "Gather and use Ansible facts, filter them with the setup module and turn gathering off. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/07-custom-facts-and-magic-variables.md b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/07-custom-facts-and-magic-variables.md index ff41e0b..2384953 100644 --- a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/07-custom-facts-and-magic-variables.md +++ b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/07-custom-facts-and-magic-variables.md @@ -1,5 +1,7 @@ --- title: Custom facts and magic variables +seoTitle: "Ansible Custom Facts and Magic Variables (hostvars)" +description: "Create custom facts in facts.d and use magic variables such as hostvars and groups. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 10 --- diff --git a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/08-lab-facts.md b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/08-lab-facts.md index 41878fb..fb5d789 100644 --- a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/08-lab-facts.md +++ b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/08-lab-facts.md @@ -1,5 +1,7 @@ --- title: "Exercise: Managing facts" +seoTitle: "Managing facts (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: managing facts. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/09-chapter-lab.md b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/09-chapter-lab.md index bfb1465..45f473c 100644 --- a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/09-chapter-lab.md +++ b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/09-chapter-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Managing variables and facts" +seoTitle: "Ansible variables and Vault Practice Lab (RHCE Exam Style)" +description: "Graded RHCE exam-style lab on Ansible variables and Vault: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 35 --- diff --git a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/10-quiz.md b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/10-quiz.md index 8fd84b3..723882e 100644 --- a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/10-quiz.md +++ b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Ansible variables and Vault quiz" +seoTitle: "Ansible variables and Vault Quiz: RHCE Practice Questions" +description: "Test yourself on Ansible variables and Vault with RHCE practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 8 --- diff --git a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/11-summary.md b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/11-summary.md index a4b5403..3e277f5 100644 --- a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/11-summary.md +++ b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Ansible variables and Vault cheat sheet" +seoTitle: "Ansible variables and Vault Cheat Sheet (RHCE)" +description: "Ansible variables and Vault cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCE study notes." kind: summary minutes: 6 --- diff --git a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/_chapter.yml b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/_chapter.yml index 87170cf..aa29c0f 100644 --- a/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/_chapter.yml +++ b/content/programs/rhel9-ansible/chapters/ch04-managing-variables-and-facts/_chapter.yml @@ -1,4 +1,6 @@ title: Managing Variables and Facts +seoTitle: "Ansible Variables, Facts and Ansible Vault (RHCE)" +seoDescription: "Use variables and precedence, protect secrets with Ansible Vault, and gather facts, custom facts and magic variables." goal: Write playbooks that use variables to simplify management, protect secrets with Ansible Vault, and use facts to reference information about managed hosts. objectives: - Create and reference variables that affect particular hosts or host groups, the play, or the global environment, and describe how variable precedence works. diff --git a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/01-loops.md b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/01-loops.md index 42e3ccd..b07a2e9 100644 --- a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/01-loops.md +++ b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/01-loops.md @@ -1,5 +1,7 @@ --- title: Writing loops +seoTitle: "Ansible Loops: loop, with_items and Examples" +description: "Repeat tasks with loop over lists and dictionaries, and register results inside loops. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 10 --- diff --git a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/02-conditionals.md b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/02-conditionals.md index 141f4ed..4cd231a 100644 --- a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/02-conditionals.md +++ b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/02-conditionals.md @@ -1,5 +1,7 @@ --- title: Running tasks conditionally +seoTitle: "Ansible when Conditions With Examples" +description: "Run tasks conditionally with when, facts, registered results and combined conditions. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/03-lab-loops-conditionals.md b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/03-lab-loops-conditionals.md index d752b5f..3f686b9 100644 --- a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/03-lab-loops-conditionals.md +++ b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/03-lab-loops-conditionals.md @@ -1,5 +1,7 @@ --- title: "Exercise: Loops and conditional tasks" +seoTitle: "Loops and conditional tasks (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: loops and conditional tasks. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/04-handlers.md b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/04-handlers.md index e1cf01b..9a35c34 100644 --- a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/04-handlers.md +++ b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/04-handlers.md @@ -1,5 +1,7 @@ --- title: Implementing handlers +seoTitle: "Ansible Handlers and notify Explained" +description: "Restart services only when something changed, with handlers, notify and flush_handlers. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 10 --- diff --git a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/05-lab-handlers.md b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/05-lab-handlers.md index ea213f8..a2da3dc 100644 --- a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/05-lab-handlers.md +++ b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/05-lab-handlers.md @@ -1,5 +1,7 @@ --- title: "Exercise: Implementing handlers" +seoTitle: "Implementing handlers (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: implementing handlers. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/06-task-failure.md b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/06-task-failure.md index 285b16b..475c0ae 100644 --- a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/06-task-failure.md +++ b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/06-task-failure.md @@ -1,5 +1,7 @@ --- title: Handling task failure +seoTitle: "Ansible Error Handling: block, rescue, ignore_errors" +description: "Control task failure with ignore_errors, failed_when, changed_when, block, rescue and always. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/07-lab-task-failure.md b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/07-lab-task-failure.md index cb1c7a7..1ec2c98 100644 --- a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/07-lab-task-failure.md +++ b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/07-lab-task-failure.md @@ -1,5 +1,7 @@ --- title: "Exercise: Handling task failure" +seoTitle: "Handling task failure (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: handling task failure. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/08-chapter-lab.md b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/08-chapter-lab.md index cf0db39..6f1ce94 100644 --- a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/08-chapter-lab.md +++ b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/08-chapter-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Implementing task control" +seoTitle: "Ansible task control Practice Lab (RHCE Exam Style)" +description: "Graded RHCE exam-style lab on Ansible task control: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 35 --- diff --git a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/09-quiz.md b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/09-quiz.md index 1075449..8b6fd1d 100644 --- a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/09-quiz.md +++ b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/09-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Ansible task control quiz" +seoTitle: "Ansible task control Quiz: RHCE Practice Questions" +description: "Test yourself on Ansible task control with RHCE practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 8 --- diff --git a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/10-summary.md b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/10-summary.md index 06b466a..b217182 100644 --- a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/10-summary.md +++ b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/10-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Ansible task control cheat sheet" +seoTitle: "Ansible task control Cheat Sheet (RHCE)" +description: "Ansible task control cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCE study notes." kind: summary minutes: 6 --- diff --git a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/_chapter.yml b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/_chapter.yml index 9a63f1f..48e2f87 100644 --- a/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/_chapter.yml +++ b/content/programs/rhel9-ansible/chapters/ch05-implementing-task-control/_chapter.yml @@ -1,4 +1,6 @@ title: Implementing Task Control +seoTitle: "Ansible Loops, when Conditions and Handlers (RHCE)" +seoDescription: "Control tasks in Ansible with loops, when conditionals, handlers, blocks, rescue and failure handling. RHCE (EX294) chapter 5." goal: Manage task control, handlers and task errors in Ansible Playbooks. objectives: - Use loops to write efficient tasks, and use conditions to control when tasks run. diff --git a/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/01-file-modules.md b/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/01-file-modules.md index d1220b7..5a54661 100644 --- a/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/01-file-modules.md +++ b/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/01-file-modules.md @@ -1,5 +1,7 @@ --- title: Modifying and copying files to hosts +seoTitle: "Ansible copy, file, lineinfile and blockinfile Modules" +description: "Create, copy and change files on managed hosts with the Ansible file modules. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/02-lab-file-modules.md b/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/02-lab-file-modules.md index f241547..be49c12 100644 --- a/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/02-lab-file-modules.md +++ b/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/02-lab-file-modules.md @@ -1,5 +1,7 @@ --- title: "Exercise: Modifying and copying files to hosts" +seoTitle: "Modifying and copying files to hosts (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: modifying and copying files to hosts. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/03-jinja2-templates.md b/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/03-jinja2-templates.md index 94d7a6b..3ac4d25 100644 --- a/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/03-jinja2-templates.md +++ b/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/03-jinja2-templates.md @@ -1,5 +1,7 @@ --- title: Deploying custom files with Jinja2 templates +seoTitle: "Ansible Jinja2 Templates With Examples" +description: "Generate configuration files from Jinja2 templates with variables, loops and conditions. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/04-lab-templates.md b/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/04-lab-templates.md index 109c471..92c9b78 100644 --- a/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/04-lab-templates.md +++ b/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/04-lab-templates.md @@ -1,5 +1,7 @@ --- title: "Exercise: Deploying custom files with Jinja2 templates" +seoTitle: "Deploying custom files with Jinja2 templates (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: deploying custom files with Jinja2 templates. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/05-chapter-lab.md b/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/05-chapter-lab.md index e12a525..227df8d 100644 --- a/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/05-chapter-lab.md +++ b/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/05-chapter-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Deploying files to managed hosts" +seoTitle: "Ansible files and templates Practice Lab (RHCE Exam Style)" +description: "Graded RHCE exam-style lab on Ansible files and templates: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/06-quiz.md b/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/06-quiz.md index 85e45bb..05ed737 100644 --- a/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/06-quiz.md +++ b/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/06-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Ansible files and templates quiz" +seoTitle: "Ansible files and templates Quiz: RHCE Practice Questions" +description: "Test yourself on Ansible files and templates with RHCE practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 8 --- diff --git a/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/07-summary.md b/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/07-summary.md index 940ed32..025cc0b 100644 --- a/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/07-summary.md +++ b/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/07-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Ansible files and templates cheat sheet" +seoTitle: "Ansible files and templates Cheat Sheet (RHCE)" +description: "Ansible files and templates cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCE study notes." kind: summary minutes: 6 --- diff --git a/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/_chapter.yml b/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/_chapter.yml index 5caba4f..da2dc90 100644 --- a/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/_chapter.yml +++ b/content/programs/rhel9-ansible/chapters/ch06-deploying-files-to-managed-hosts/_chapter.yml @@ -1,4 +1,6 @@ title: Deploying Files to Managed Hosts +seoTitle: "Ansible File Modules and Jinja2 Templates (RHCE)" +seoDescription: "Deploy and change files on managed hosts with Ansible file modules, and generate configuration with Jinja2 templates." goal: Deploy, manage and adjust files on hosts managed by Ansible. objectives: - Create, install, edit and remove files on managed hosts, and manage their permissions, ownership and SELinux context. diff --git a/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/01-host-patterns.md b/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/01-host-patterns.md index 89fbd88..44ef883 100644 --- a/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/01-host-patterns.md +++ b/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/01-host-patterns.md @@ -1,5 +1,7 @@ --- title: Selecting hosts with host patterns +seoTitle: "Ansible Host Patterns and --limit Examples" +description: "Select hosts with patterns: groups, wildcards, intersections, exclusions and --limit. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/02-lab-host-patterns.md b/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/02-lab-host-patterns.md index 5ca0333..eb136e2 100644 --- a/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/02-lab-host-patterns.md +++ b/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/02-lab-host-patterns.md @@ -1,5 +1,7 @@ --- title: "Exercise: Selecting hosts with host patterns" +seoTitle: "Selecting hosts with host patterns (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: selecting hosts with host patterns. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/03-reusing-content.md b/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/03-reusing-content.md index c5b4add..a69219c 100644 --- a/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/03-reusing-content.md +++ b/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/03-reusing-content.md @@ -1,5 +1,7 @@ --- title: Including and importing files +seoTitle: "Ansible import_tasks vs include_tasks Explained" +description: "Split playbooks with import_playbook, import_tasks and include_tasks, and know the difference. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/04-lab-reuse.md b/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/04-lab-reuse.md index a3fca24..af96a38 100644 --- a/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/04-lab-reuse.md +++ b/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/04-lab-reuse.md @@ -1,5 +1,7 @@ --- title: "Exercise: Including and importing files" +seoTitle: "Including and importing files (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: including and importing files. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/05-chapter-lab.md b/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/05-chapter-lab.md index 527b6f7..2707fc2 100644 --- a/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/05-chapter-lab.md +++ b/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/05-chapter-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Managing complex plays and playbooks" +seoTitle: "Ansible complex playbooks Practice Lab (RHCE Exam Style)" +description: "Graded RHCE exam-style lab on Ansible complex playbooks: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/06-quiz.md b/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/06-quiz.md index 5888cb2..c6cd58b 100644 --- a/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/06-quiz.md +++ b/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/06-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Ansible complex playbooks quiz" +seoTitle: "Ansible complex playbooks Quiz: RHCE Practice Questions" +description: "Test yourself on Ansible complex playbooks with RHCE practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 8 --- diff --git a/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/07-summary.md b/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/07-summary.md index 54c2f81..cd1fe4f 100644 --- a/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/07-summary.md +++ b/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/07-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Ansible complex playbooks cheat sheet" +seoTitle: "Ansible complex playbooks Cheat Sheet (RHCE)" +description: "Ansible complex playbooks cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCE study notes." kind: summary minutes: 6 --- diff --git a/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/_chapter.yml b/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/_chapter.yml index 7211988..58a24fe 100644 --- a/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/_chapter.yml +++ b/content/programs/rhel9-ansible/chapters/ch07-managing-complex-plays-and-playbooks/_chapter.yml @@ -1,4 +1,6 @@ title: Managing Complex Plays and Playbooks +seoTitle: "Ansible Host Patterns, include and import (RHCE)" +seoDescription: "Select hosts precisely with host patterns and split large playbooks with include and import of tasks and playbooks." goal: Write playbooks for larger, more complex projects by selecting hosts precisely and splitting work into reusable files. objectives: - Write host patterns that select exactly the hosts a play or a command should manage. diff --git a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/01-role-structure.md b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/01-role-structure.md index 275ba86..897a071 100644 --- a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/01-role-structure.md +++ b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/01-role-structure.md @@ -1,5 +1,7 @@ --- title: Describing role structure +seoTitle: "Ansible Role Directory Structure Explained" +description: "What each directory in an Ansible role does: tasks, handlers, templates, defaults and vars. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/02-creating-roles.md b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/02-creating-roles.md index 1b2455a..dd8b42a 100644 --- a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/02-creating-roles.md +++ b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/02-creating-roles.md @@ -1,5 +1,7 @@ --- title: Creating roles +seoTitle: "How to Create an Ansible Role (ansible-galaxy init)" +description: "Create your own role with ansible-galaxy role init and use it from a playbook. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 10 --- diff --git a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/03-lab-role-create.md b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/03-lab-role-create.md index a994de1..a941a18 100644 --- a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/03-lab-role-create.md +++ b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/03-lab-role-create.md @@ -1,5 +1,7 @@ --- title: "Exercise: Creating roles" +seoTitle: "Creating roles (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: creating roles. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/04-external-roles.md b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/04-external-roles.md index 2d66f5b..11decc0 100644 --- a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/04-external-roles.md +++ b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/04-external-roles.md @@ -1,5 +1,7 @@ --- title: Deploying roles from external content sources +seoTitle: "Install Ansible Roles From Galaxy With requirements.yml" +description: "Install roles from Ansible Galaxy and Git with a requirements file and ansible-galaxy. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/05-lab-role-galaxy.md b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/05-lab-role-galaxy.md index 3c51c45..bbb0738 100644 --- a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/05-lab-role-galaxy.md +++ b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/05-lab-role-galaxy.md @@ -1,5 +1,7 @@ --- title: "Exercise: Deploying roles from external content sources" +seoTitle: "Deploying roles from external content sources (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: deploying roles from external content sources. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/06-collections.md b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/06-collections.md index 56ae70a..1860c46 100644 --- a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/06-collections.md +++ b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/06-collections.md @@ -1,5 +1,7 @@ --- title: Getting roles and modules from collections +seoTitle: "Ansible Collections Tutorial: Install and Use" +description: "Install collections with ansible-galaxy and use their roles and modules with FQCNs. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/07-lab-role-collections.md b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/07-lab-role-collections.md index 102fa07..da9cc13 100644 --- a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/07-lab-role-collections.md +++ b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/07-lab-role-collections.md @@ -1,5 +1,7 @@ --- title: "Exercise: Getting roles and modules from content collections" +seoTitle: "Getting roles and modules from content collections (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: getting roles and modules from content collections. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/08-system-roles.md b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/08-system-roles.md index f014f8d..dcf9478 100644 --- a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/08-system-roles.md +++ b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/08-system-roles.md @@ -1,5 +1,7 @@ --- title: Reusing content with system roles +seoTitle: "RHEL System Roles With Ansible (timesync, selinux)" +description: "Reuse the RHEL system roles to configure time, SELinux and more with tested content. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/09-lab-role-system.md b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/09-lab-role-system.md index 3cf232b..ee6b159 100644 --- a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/09-lab-role-system.md +++ b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/09-lab-role-system.md @@ -1,5 +1,7 @@ --- title: "Exercise: Reusing content with system roles" +seoTitle: "Reusing content with system roles (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: reusing content with system roles. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/10-chapter-lab.md b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/10-chapter-lab.md index 7b8f93a..747b483 100644 --- a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/10-chapter-lab.md +++ b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/10-chapter-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Simplifying playbooks with roles and content collections" +seoTitle: "Ansible roles and collections Practice Lab (RHCE Exam Style)" +description: "Graded RHCE exam-style lab on Ansible roles and collections: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 40 --- diff --git a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/11-quiz.md b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/11-quiz.md index 24c64ac..b6fe0f4 100644 --- a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/11-quiz.md +++ b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/11-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Ansible roles and collections quiz" +seoTitle: "Ansible roles and collections Quiz: RHCE Practice Questions" +description: "Test yourself on Ansible roles and collections with RHCE practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 8 --- diff --git a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/12-summary.md b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/12-summary.md index fd2d486..aa03dfc 100644 --- a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/12-summary.md +++ b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/12-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Ansible roles and collections cheat sheet" +seoTitle: "Ansible roles and collections Cheat Sheet (RHCE)" +description: "Ansible roles and collections cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCE study notes." kind: summary minutes: 6 --- diff --git a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/_chapter.yml b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/_chapter.yml index 30df5b4..528b0c7 100644 --- a/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/_chapter.yml +++ b/content/programs/rhel9-ansible/chapters/ch08-simplifying-playbooks-with-roles-and-collections/_chapter.yml @@ -1,4 +1,6 @@ title: Simplifying Playbooks with Roles and Collections +seoTitle: "Ansible Roles, Galaxy and Collections Tutorial (RHCE)" +seoDescription: "Create Ansible roles, install roles and collections from Galaxy and requirements files, and reuse RHEL system roles." goal: Use roles and content collections to develop playbooks more quickly and reuse code. objectives: - Describe the purpose of a role, its structure, and how roles are used in playbooks. diff --git a/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/01-troubleshooting-playbooks.md b/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/01-troubleshooting-playbooks.md index 2d1cf28..61aff74 100644 --- a/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/01-troubleshooting-playbooks.md +++ b/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/01-troubleshooting-playbooks.md @@ -1,5 +1,7 @@ --- title: Troubleshooting playbooks +seoTitle: "Debug Ansible Playbooks: -v, --check, debug Module" +description: "Troubleshoot playbooks with verbosity, syntax checks, check mode, diff and the debug module. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/02-lab-troubleshoot-playbook.md b/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/02-lab-troubleshoot-playbook.md index 462fe11..f87d3bb 100644 --- a/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/02-lab-troubleshoot-playbook.md +++ b/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/02-lab-troubleshoot-playbook.md @@ -1,5 +1,7 @@ --- title: "Exercise: Troubleshooting playbooks" +seoTitle: "Troubleshooting playbooks (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: troubleshooting playbooks. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/03-troubleshooting-hosts.md b/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/03-troubleshooting-hosts.md index fc8131d..f757778 100644 --- a/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/03-troubleshooting-hosts.md +++ b/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/03-troubleshooting-hosts.md @@ -1,5 +1,7 @@ --- title: Troubleshooting managed hosts +seoTitle: "Troubleshoot Ansible SSH and Managed Host Problems" +description: "Fix unreachable hosts, SSH and become problems, and test managed hosts with ad hoc commands. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/04-lab-troubleshoot-host.md b/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/04-lab-troubleshoot-host.md index 63da355..16010d9 100644 --- a/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/04-lab-troubleshoot-host.md +++ b/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/04-lab-troubleshoot-host.md @@ -1,5 +1,7 @@ --- title: "Exercise: Troubleshooting Ansible managed hosts" +seoTitle: "Troubleshooting Ansible managed hosts (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: troubleshooting Ansible managed hosts. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/05-chapter-lab.md b/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/05-chapter-lab.md index da847b3..07cf9b7 100644 --- a/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/05-chapter-lab.md +++ b/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/05-chapter-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Troubleshooting Ansible" +seoTitle: "Ansible troubleshooting Practice Lab (RHCE Exam Style)" +description: "Graded RHCE exam-style lab on Ansible troubleshooting: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/06-quiz.md b/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/06-quiz.md index 91ca337..53dd4a4 100644 --- a/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/06-quiz.md +++ b/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/06-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Ansible troubleshooting quiz" +seoTitle: "Ansible troubleshooting Quiz: RHCE Practice Questions" +description: "Test yourself on Ansible troubleshooting with RHCE practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 8 --- diff --git a/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/07-summary.md b/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/07-summary.md index d1c56b4..9fadcd7 100644 --- a/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/07-summary.md +++ b/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/07-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Ansible troubleshooting cheat sheet" +seoTitle: "Ansible troubleshooting Cheat Sheet (RHCE)" +description: "Ansible troubleshooting cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCE study notes." kind: summary minutes: 6 --- diff --git a/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/_chapter.yml b/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/_chapter.yml index 8ce4293..cf10e9d 100644 --- a/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/_chapter.yml +++ b/content/programs/rhel9-ansible/chapters/ch09-troubleshooting-ansible/_chapter.yml @@ -1,4 +1,6 @@ title: Troubleshooting Ansible +seoTitle: "Troubleshooting Ansible Playbooks and Hosts (RHCE)" +seoDescription: "Debug Ansible playbooks with verbosity, check mode and the debug module, and troubleshoot managed host connections." goal: Troubleshoot playbooks and managed hosts. objectives: - Troubleshoot generic issues with a new playbook and repair them, using error messages, syntax checks, verbosity, logs and playbook artifacts. diff --git a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/01-software.md b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/01-software.md index 17c7567..7683749 100644 --- a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/01-software.md +++ b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/01-software.md @@ -1,5 +1,7 @@ --- title: Managing software +seoTitle: "Manage Packages and Repositories With Ansible (dnf)" +description: "Install packages, add repositories and register systems with Ansible dnf and related modules. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/02-lab-software.md b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/02-lab-software.md index 2cd09d0..d3cbe75 100644 --- a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/02-lab-software.md +++ b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/02-lab-software.md @@ -1,5 +1,7 @@ --- title: "Exercise: Managing software and subscriptions" +seoTitle: "Managing software and subscriptions (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: managing software and subscriptions. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/03-users.md b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/03-users.md index cdfce30..dda86e5 100644 --- a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/03-users.md +++ b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/03-users.md @@ -1,5 +1,7 @@ --- title: Managing users and authentication +seoTitle: "Manage Linux Users and SSH Keys With Ansible" +description: "Create users and groups, set passwords and authorized keys, and manage sudo with Ansible. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/04-lab-users.md b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/04-lab-users.md index 6101f99..e9489c2 100644 --- a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/04-lab-users.md +++ b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/04-lab-users.md @@ -1,5 +1,7 @@ --- title: "Exercise: Managing users and authentication" +seoTitle: "Managing users and authentication (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: managing users and authentication. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/05-boot-and-scheduling.md b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/05-boot-and-scheduling.md index e72c53d..e59bc49 100644 --- a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/05-boot-and-scheduling.md +++ b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/05-boot-and-scheduling.md @@ -1,5 +1,7 @@ --- title: Managing the boot process and scheduled processes +seoTitle: "Ansible cron, at and Boot Targets" +description: "Schedule jobs with the Ansible cron and at modules, and manage services, targets and reboots. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/06-lab-boot-and-scheduling.md b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/06-lab-boot-and-scheduling.md index c5d0343..6ddcd37 100644 --- a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/06-lab-boot-and-scheduling.md +++ b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/06-lab-boot-and-scheduling.md @@ -1,5 +1,7 @@ --- title: "Exercise: Managing the boot process and scheduled processes" +seoTitle: "Managing the boot process and scheduled processes (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: managing the boot process and scheduled processes. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/07-storage.md b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/07-storage.md index 580cc9c..1958464 100644 --- a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/07-storage.md +++ b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/07-storage.md @@ -1,5 +1,7 @@ --- title: Managing storage +seoTitle: "Ansible LVM and File System Automation (lvg, lvol)" +description: "Partition disks, create LVM volumes and file systems and mount them with Ansible modules. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/08-lab-storage.md b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/08-lab-storage.md index 59e052e..905bac2 100644 --- a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/08-lab-storage.md +++ b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/08-lab-storage.md @@ -1,5 +1,7 @@ --- title: "Exercise: Managing storage" +seoTitle: "Managing storage (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: managing storage. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/09-network.md b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/09-network.md index e716789..7b3396a 100644 --- a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/09-network.md +++ b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/09-network.md @@ -1,5 +1,7 @@ --- title: Managing network configuration +seoTitle: "Configure Networking With Ansible (nmcli, network role)" +description: "Manage network interfaces and settings with the nmcli module and the network system role. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/10-lab-network.md b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/10-lab-network.md index d9e3668..1d3b7fa 100644 --- a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/10-lab-network.md +++ b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/10-lab-network.md @@ -1,5 +1,7 @@ --- title: "Exercise: Managing network configuration" +seoTitle: "Managing network configuration (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: managing network configuration. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/11-archives.md b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/11-archives.md index f2c7d95..b6ef0ab 100644 --- a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/11-archives.md +++ b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/11-archives.md @@ -1,5 +1,7 @@ --- title: Archiving and restoring files +seoTitle: "Archive and Restore Files With Ansible" +description: "Create and extract archives and fetch files from managed hosts with Ansible modules. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 10 --- diff --git a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/12-lab-archives.md b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/12-lab-archives.md index 954fdc2..df0b72d 100644 --- a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/12-lab-archives.md +++ b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/12-lab-archives.md @@ -1,5 +1,7 @@ --- title: "Exercise: Archiving and restoring files" +seoTitle: "Archiving and restoring files (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: archiving and restoring files. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/13-chapter-lab.md b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/13-chapter-lab.md index 852ad05..d9c710a 100644 --- a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/13-chapter-lab.md +++ b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/13-chapter-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Automating Linux administration tasks" +seoTitle: "Ansible Linux automation Practice Lab (RHCE Exam Style)" +description: "Graded RHCE exam-style lab on Ansible Linux automation: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 40 --- diff --git a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/14-quiz.md b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/14-quiz.md index c9e9c6b..24a797c 100644 --- a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/14-quiz.md +++ b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/14-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Ansible Linux automation quiz" +seoTitle: "Ansible Linux automation Quiz: RHCE Practice Questions" +description: "Test yourself on Ansible Linux automation with RHCE practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/15-summary.md b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/15-summary.md index dc8dd1d..d38fd5d 100644 --- a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/15-summary.md +++ b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/15-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Ansible Linux automation cheat sheet" +seoTitle: "Ansible Linux automation Cheat Sheet (RHCE)" +description: "Ansible Linux automation cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCE study notes." kind: summary minutes: 8 --- diff --git a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/_chapter.yml b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/_chapter.yml index 2b02622..f0cc2de 100644 --- a/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/_chapter.yml +++ b/content/programs/rhel9-ansible/chapters/ch10-automating-linux-administration-tasks/_chapter.yml @@ -1,4 +1,6 @@ title: Automating Linux Administration Tasks +seoTitle: "Automate Linux Administration With Ansible (RHCE)" +seoDescription: "Automate packages, users, boot and cron, storage, networking and archives on RHEL with Ansible modules and system roles." goal: Automate common Linux system administration tasks with Ansible. objectives: - Subscribe systems, configure software channels and repositories, enable module streams, and manage RPM packages on managed hosts. diff --git a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/01-how-to-review.md b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/01-how-to-review.md index 5e969e9..1718fde 100644 --- a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/01-how-to-review.md +++ b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/01-how-to-review.md @@ -1,5 +1,7 @@ --- title: How to use this review +seoTitle: "How to Prepare for the RHCE With Ansible Review Labs" +description: "How to use the review labs and assessments to check you are ready for the RHCE. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/02-lab-review-deploy.md b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/02-lab-review-deploy.md index 91d3efc..58b42ec 100644 --- a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/02-lab-review-deploy.md +++ b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/02-lab-review-deploy.md @@ -1,5 +1,7 @@ --- title: "Exercise: Deploying Ansible" +seoTitle: "Deploying Ansible: RHCE Exam-Style Practice Lab" +description: "Graded RHCE exam-style lab on Ansible final review: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 40 --- diff --git a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/03-lab-review-playbooks.md b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/03-lab-review-playbooks.md index 1da3cc4..7057213 100644 --- a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/03-lab-review-playbooks.md +++ b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/03-lab-review-playbooks.md @@ -1,5 +1,7 @@ --- title: "Exercise: Creating playbooks" +seoTitle: "Creating playbooks: RHCE Exam-Style Practice Lab" +description: "Graded RHCE exam-style lab on Ansible final review: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 40 --- diff --git a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/04-lab-review-admin.md b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/04-lab-review-admin.md index 1ea00a9..9a02be2 100644 --- a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/04-lab-review-admin.md +++ b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/04-lab-review-admin.md @@ -1,5 +1,7 @@ --- title: "Exercise: Managing Linux hosts and using system roles" +seoTitle: "Managing Linux hosts and using system roles: RHCE Exam-Style Practice Lab" +description: "Graded RHCE exam-style lab on Ansible final review: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 45 --- diff --git a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/05-lab-review-roles.md b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/05-lab-review-roles.md index e9fe481..645d920 100644 --- a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/05-lab-review-roles.md +++ b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/05-lab-review-roles.md @@ -1,5 +1,7 @@ --- title: "Exercise: Creating roles" +seoTitle: "Creating roles: RHCE Exam-Style Practice Lab" +description: "Graded RHCE exam-style lab on Ansible final review: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 35 --- diff --git a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/06-quiz.md b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/06-quiz.md index a3ca659..88b3149 100644 --- a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/06-quiz.md +++ b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/06-quiz.md @@ -1,5 +1,7 @@ --- -title: Final knowledge check +title: "Ansible final review quiz" +seoTitle: "Ansible final review Quiz: RHCE Practice Questions" +description: "Test yourself on Ansible final review with RHCE practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 20 --- diff --git a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/07-summary.md b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/07-summary.md index 5599c5f..c0138d5 100644 --- a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/07-summary.md +++ b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/07-summary.md @@ -1,5 +1,7 @@ --- -title: Course summary and cheat sheet +title: "Ansible final review cheat sheet" +seoTitle: "Ansible final review Cheat Sheet (RHCE)" +description: "Ansible final review cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCE study notes." kind: summary minutes: 12 --- diff --git a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/08-assessment-release.md b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/08-assessment-release.md index 4261c2d..bdef45a 100644 --- a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/08-assessment-release.md +++ b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/08-assessment-release.md @@ -1,5 +1,7 @@ --- title: "Assessment: Release a web service" +seoTitle: "Release a web service: RHCE Exam-Style Practice Lab" +description: "Graded RHCE exam-style lab on Ansible final review: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 90 --- diff --git a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/09-assessment-operations.md b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/09-assessment-operations.md index c26402e..77c8db9 100644 --- a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/09-assessment-operations.md +++ b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/09-assessment-operations.md @@ -1,5 +1,7 @@ --- title: "Assessment: Prepare an operations host" +seoTitle: "Prepare an operations host: RHCE Exam-Style Practice Lab" +description: "Graded RHCE exam-style lab on Ansible final review: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 90 --- diff --git a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/10-rhce-exam-objectives.md b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/10-rhce-exam-objectives.md new file mode 100644 index 0000000..57dbe20 --- /dev/null +++ b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/10-rhce-exam-objectives.md @@ -0,0 +1,52 @@ +--- +title: "RHCE (EX294) exam objectives: a study map" +seoTitle: "RHCE EX294 Exam Objectives: Free Ansible Study Map" +description: "Every RHCE (EX294) objective area for RHEL 9 mapped to free Ansible lessons, exercises and labs. Use it as your RHCE study checklist and practice plan." +kind: lesson +minutes: 10 +--- + +{% lead %} +The RHCE exam (EX294) is a hands-on Ansible test: you write and run automation against real systems, and the result is checked on them. This page lists the objective areas Red Hat publishes for the exam on RHEL 9, in our own words, and links each one to the lessons and exercises of this course that teach it. When you can do every line on your practice lab without notes, you are ready. +{% /lead %} + +{% callout type="note" title="Check the official list" %} +Red Hat publishes and occasionally updates the objectives on the [EX294 exam page](https://www.redhat.com/en/services/training/ex294-red-hat-certified-engineer-rhce-exam-red-hat-enterprise-linux-9). This study map follows that list but is not an official document, and it makes no claim about what any particular exam contains. The RHCE also expects the system administration skills of the RHCSA, which the free Linux administration path of this site covers. +{% /callout %} + +## Understand the core components of Ansible + +- Inventories, modules, variables, facts, loops, conditions, plays and playbooks, configuration files and roles, and reading the documentation: [what Ansible is](#/ch02/what-is-ansible), [architecture](#/ch02/architecture), [inventory](#/ch03/inventory), [ansible.cfg](#/ch03/configuration), [modules and YAML](#/ch03/modules-and-yaml). +- Run playbooks and look up documentation with automation content navigator: [Ansible distributions and navigator](#/ch02/automation-platform), [inventory](#/ch03/inventory). + +## Install and configure a control node + +- Install the packages, create a static inventory with groups, and write a configuration file: [preparing the control node](#/ch02/control-node-and-hosts), [inventory](#/ch03/inventory), [configuration](#/ch03/configuration). + +## Configure managed nodes + +- Create and distribute SSH keys, configure privilege escalation, deploy files and check the setup with ad hoc commands: [preparing managed hosts](#/ch02/control-node-and-hosts), [multiple plays and become](#/ch03/multiple-plays), [file modules](#/ch06/file-modules), [troubleshooting hosts](#/ch09/troubleshooting-hosts). + +## Create plays and playbooks + +- Work with common modules, register results in variables, use conditions and loops, handle errors, and bring systems to a specified state: [writing playbooks](#/ch03/writing-playbooks), [variables](#/ch04/variables), [precedence](#/ch04/scope-and-precedence), [facts](#/ch04/facts), [loops](#/ch05/loops), [conditions](#/ch05/conditionals), [handlers](#/ch05/handlers), [task failure](#/ch05/task-failure), [host patterns](#/ch07/host-patterns), [imports and includes](#/ch07/reusing-content). + +## Automate standard administration tasks + +- Packages and repositories, services, firewall rules, file systems and storage, file content, archives, scheduled tasks, security, and users and groups: [software](#/ch10/software), [users](#/ch10/users), [boot and scheduling](#/ch10/boot-and-scheduling), [storage](#/ch10/storage), [network](#/ch10/network), [archives](#/ch10/archives), [file modules](#/ch06/file-modules). + +## Manage content + +- Create and use Jinja2 templates for customised configuration files: [templates](#/ch06/jinja2-templates). + +## Protect sensitive data + +- Use Ansible Vault in playbooks: [Ansible Vault](#/ch04/ansible-vault). + +## Use roles and content collections + +- Create roles, install them from Galaxy and requirements files, use collections and their modules, and reuse the RHEL system roles: [role structure](#/ch08/role-structure), [creating roles](#/ch08/creating-roles), [external roles](#/ch08/external-roles), [collections](#/ch08/collections), [system roles](#/ch08/system-roles). + +## Practise like the exam + +The review labs of this chapter and the two assessments state only the requirements, like exam tasks: [deploying Ansible](#/ch11/lab-review-deploy), [playbooks](#/ch11/lab-review-playbooks), [managing hosts](#/ch11/lab-review-admin), [roles](#/ch11/lab-review-roles), [releasing a web service](#/ch11/assessment-release) and [preparing an operations host](#/ch11/assessment-operations). Work through them on your [practice lab](#/ch01/overview), reset it, and repeat them without the lessons open. diff --git a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/_chapter.yml b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/_chapter.yml index b91c67c..b3fd885 100644 --- a/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/_chapter.yml +++ b/content/programs/rhel9-ansible/chapters/ch11-comprehensive-review/_chapter.yml @@ -1,4 +1,6 @@ title: Comprehensive Review +seoTitle: "RHCE Practice Exam: Ansible Review Labs" +seoDescription: "RHCE review: deploy Ansible, write playbooks, manage hosts and roles, and test yourself with two assessment scenarios." goal: Demonstrate the skills learned in this course by installing, optimizing and configuring Ansible to manage hosts. objectives: - Find and close the gaps in what you have learned, chapter by chapter. diff --git a/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/01-git-for-automation.md b/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/01-git-for-automation.md index f09cfbb..a6ebd6a 100644 --- a/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/01-git-for-automation.md +++ b/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/01-git-for-automation.md @@ -1,5 +1,7 @@ --- title: Managing automation projects with Git +seoTitle: "Git for Ansible Projects: Branches, Commits, Remotes" +description: "Keep Ansible automation in Git: commits, branches, merges and pushing to a remote. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 14 --- diff --git a/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/02-lab-git.md b/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/02-lab-git.md index d78c495..fa28742 100644 --- a/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/02-lab-git.md +++ b/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/02-lab-git.md @@ -1,5 +1,7 @@ --- title: "Exercise: Managing a project with Git" +seoTitle: "Managing a project with Git (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: managing a project with Git. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/03-development-containers.md b/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/03-development-containers.md index be9118e..4e9c3c9 100644 --- a/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/03-development-containers.md +++ b/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/03-development-containers.md @@ -1,5 +1,7 @@ --- title: Developing with VS Code and development containers +seoTitle: "VS Code Dev Containers and Ansible Execution Environments" +description: "Develop Ansible in VS Code with development containers and consistent execution environments. Free RHCE (EX294) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/04-lab-development-containers.md b/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/04-lab-development-containers.md index 64aad7b..92d50cb 100644 --- a/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/04-lab-development-containers.md +++ b/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/04-lab-development-containers.md @@ -1,5 +1,7 @@ --- title: "Exercise: Running a project in a development container" +seoTitle: "Running a project in a development container (RHCE Practice Exercise)" +description: "Hands-on RHCE practice: running a project in a development container. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/05-chapter-lab.md b/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/05-chapter-lab.md index 3ffde5e..a78e266 100644 --- a/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/05-chapter-lab.md +++ b/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/05-chapter-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Git and development containers" +seoTitle: "Git for Ansible Practice Lab (RHCE Exam Style)" +description: "Graded RHCE exam-style lab on Git for Ansible: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/06-quiz.md b/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/06-quiz.md index 2b6a1e0..bb14d2b 100644 --- a/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/06-quiz.md +++ b/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/06-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Git for Ansible quiz" +seoTitle: "Git for Ansible Quiz: RHCE Practice Questions" +description: "Test yourself on Git for Ansible with RHCE practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 8 --- diff --git a/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/07-summary.md b/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/07-summary.md index 2e86c9e..97c4a5e 100644 --- a/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/07-summary.md +++ b/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/07-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Git for Ansible cheat sheet" +seoTitle: "Git for Ansible Cheat Sheet (RHCE)" +description: "Git for Ansible cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCE study notes." kind: summary minutes: 6 --- diff --git a/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/_chapter.yml b/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/_chapter.yml index fa18a5a..2b522ba 100644 --- a/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/_chapter.yml +++ b/content/programs/rhel9-ansible/chapters/ch12-git-and-development-containers/_chapter.yml @@ -1,4 +1,6 @@ title: Git and Development Containers +seoTitle: "Git and Development Containers for Ansible" +seoDescription: "Keep Ansible projects in Git and develop them in VS Code with consistent execution environments in development containers." goal: Keep automation projects in Git, and develop and run them with consistent tools from an Ansible development container and an execution environment. objectives: - Clone a project, review and commit changes, push them to a shared remote and pull a teammate's work with Git. diff --git a/content/programs/rhel9-ansible/program.yml b/content/programs/rhel9-ansible/program.yml index aea1809..622bba7 100644 --- a/content/programs/rhel9-ansible/program.yml +++ b/content/programs/rhel9-ansible/program.yml @@ -3,7 +3,7 @@ id: rhel9-ansible title: Ansible automation on RHEL 9 label: Ansible tagline: Learn Ansible automation by doing -summary: A hands-on path from your first playbook to automating real Linux administration. Every idea is drawn as a diagram, every exercise runs on a practice lab you build yourself, and every chapter ends with a quiz and a cheat sheet. +summary: A hands-on path from your first playbook to automating real Linux administration. Every idea is drawn as a diagram, every exercise runs on a practice lab you build yourself, and every chapter ends with a quiz and a cheat sheet. Prepares you for the RHCE (EX294) exam. platform: family: rhel version: "9" @@ -72,5 +72,25 @@ showcase: tone: coral highlights: [Playbooks, Variables, Roles, Vault, Templates, Troubleshooting] title: Ansible automation on RHEL - label: RHEL + label: RHCE · EX294 summary: A hands-on path from your first playbook to automating real Linux administration. Every idea is drawn as a diagram, every exercise runs on a practice lab you build yourself, and every chapter ends with a quiz and a cheat sheet. +seoTitle: Free Ansible Course for RHCE (EX294) on RHEL 9 +seoDescription: 'Learn Ansible for the RHCE (EX294) exam for free: playbooks, variables, Vault, templates, roles and collections, with graded labs on your own lab.' +keywords: +- RHCE +- EX294 +- RHCE study guide +- RHCE practice exam +- Ansible tutorial +- Ansible playbook examples +- Ansible for beginners +- Ansible Vault +- Ansible roles +- Jinja2 templates +- Ansible collections +- RHEL 9 +- Ansible automation +certifications: +- name: Red Hat Certified Engineer (RHCE) + code: EX294 + url: https://www.redhat.com/en/services/training/ex294-red-hat-certified-engineer-rhce-exam-red-hat-enterprise-linux-9 diff --git a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/01-overview.md b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/01-overview.md index 28cf977..b9dd77c 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/01-overview.md +++ b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/01-overview.md @@ -1,5 +1,7 @@ --- title: What you are building +seoTitle: "Build an RHCSA Practice Lab at Home" +description: "What the free home lab looks like: three Rocky Linux 9 VMs, a sealed network and resettable snapshots. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/02-prepare-host.md b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/02-prepare-host.md index a9d0d01..930e4c1 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/02-prepare-host.md +++ b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/02-prepare-host.md @@ -1,5 +1,7 @@ --- title: Prepare the host and LXD +seoTitle: "Install LXD on Ubuntu for a Linux Lab" +description: "Prepare an Ubuntu host and install LXD to run the practice virtual machines. Free RHCSA (EX200) lesson with diagrams and practice." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/03-network-and-seal.md b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/03-network-and-seal.md index 79907bc..86428b1 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/03-network-and-seal.md +++ b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/03-network-and-seal.md @@ -1,5 +1,7 @@ --- title: Create and seal the lab network +seoTitle: "Create an Isolated Lab Network in LXD" +description: "Create a private bridge network and seal it so the lab cannot reach your home network. Free RHCSA (EX200) lesson with diagrams and practice." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/04-project-profile-disks.md b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/04-project-profile-disks.md index 12fb804..e78f970 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/04-project-profile-disks.md +++ b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/04-project-profile-disks.md @@ -1,5 +1,7 @@ --- title: Project, profile and extra disks +seoTitle: "LXD Project, Profile and Extra VM Disks" +description: "Set up an LXD project and profile, and give each server a spare disk for storage practice. Free RHCSA (EX200) lesson with diagrams and practice." kind: lab minutes: 17 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/05-create-and-verify-vms.md b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/05-create-and-verify-vms.md index 2620c37..ddfdf56 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/05-create-and-verify-vms.md +++ b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/05-create-and-verify-vms.md @@ -1,5 +1,7 @@ --- title: Create the VMs and check the seal +seoTitle: "Create Rocky Linux 9 VMs and Test the Lab" +description: "Launch the workstation and server VMs and check that the lab network is sealed. Free RHCSA (EX200) lesson with diagrams and practice." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/06-workstation.md b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/06-workstation.md index 7d3f8b6..becf008 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/06-workstation.md +++ b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/06-workstation.md @@ -1,5 +1,7 @@ --- title: Prepare workstation and the lab tools +seoTitle: "Set Up the Workstation VM and Lab Tools" +description: "Prepare the workstation VM, SSH keys and the lab command that starts and grades exercises. Free RHCSA (EX200) lesson with diagrams and practice." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/07-snapshots-and-rht-vmctl.md b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/07-snapshots-and-rht-vmctl.md index ace7a63..3e1ff00 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/07-snapshots-and-rht-vmctl.md +++ b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/07-snapshots-and-rht-vmctl.md @@ -1,5 +1,7 @@ --- title: Snapshots and rht-vmctl +seoTitle: "LXD Snapshots: Reset Lab VMs in Seconds" +description: "Save clean snapshots and reset every VM in seconds with one command. Free RHCSA (EX200) lesson with diagrams and practice." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/08-daily-use.md b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/08-daily-use.md index 7cf1af5..c744451 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/08-daily-use.md +++ b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/08-daily-use.md @@ -1,5 +1,7 @@ --- title: Your first session and daily use +seoTitle: "Using the Practice Lab Day to Day" +description: "Start, use and reset the lab in a normal study session. Free RHCSA (EX200) lesson with diagrams and practice." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/09-troubleshooting.md b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/09-troubleshooting.md index 8c9512e..9cfa55c 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/09-troubleshooting.md +++ b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/09-troubleshooting.md @@ -1,5 +1,7 @@ --- title: Troubleshooting and fast rebuild +seoTitle: "Troubleshooting and fast rebuild: RHCSA Home Lab Setup" +description: "Troubleshooting and fast rebuild: part of building a free RHCSA practice lab at home with Rocky Linux 9 virtual machines on LXD." kind: summary minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/_chapter.yml index 8a05342..cf1b605 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch01-practice-lab/_chapter.yml @@ -1,4 +1,6 @@ title: Build Your Practice Lab +seoTitle: "Free RHCSA Practice Lab at Home: Rocky Linux 9 VMs on LXD" +seoDescription: "Build a free RHCSA practice lab at home: three Rocky Linux 9 virtual machines on LXD, a sealed network, snapshots and one-command resets." setup: true goal: Build a sealed practice lab at home, with Rocky Linux 9 VMs on LXD, so every exercise in this path has a safe place to run and a fast way to reset. objectives: diff --git a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/01-linux-and-the-shell.md b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/01-linux-and-the-shell.md index 3d1e522..9d932a0 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/01-linux-and-the-shell.md +++ b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/01-linux-and-the-shell.md @@ -1,5 +1,7 @@ --- title: Linux and the shell +seoTitle: "Linux and the Shell: A Beginner Introduction" +description: "What Linux, distributions and the Bash shell are, how to read the prompt and how to log in with SSH. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/02-exercise-log-in.md b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/02-exercise-log-in.md index a95319e..4d123cf 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/02-exercise-log-in.md +++ b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/02-exercise-log-in.md @@ -1,5 +1,7 @@ --- title: "Exercise: Log in and find your way" +seoTitle: "Log in and find your way (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: log in and find your way. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/03-running-commands.md b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/03-running-commands.md index 67257cf..9976f02 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/03-running-commands.md +++ b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/03-running-commands.md @@ -1,5 +1,7 @@ --- title: Run commands and read files +seoTitle: "Linux Commands: Options, Arguments, cat and less" +description: "Run Linux commands with options and arguments, and read files with cat, less, head, tail and wc. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/04-shortcuts.md b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/04-shortcuts.md index 633cef6..7686801 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/04-shortcuts.md +++ b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/04-shortcuts.md @@ -1,5 +1,7 @@ --- title: Work faster with completion and history +seoTitle: "Bash Tab Completion, History and Shortcuts" +description: "Save keystrokes with Tab completion, history search with Ctrl+R and Bash line-editing shortcuts. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/05-exercise-shortcuts.md b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/05-exercise-shortcuts.md index 08e8801..56fc255 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/05-exercise-shortcuts.md +++ b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/05-exercise-shortcuts.md @@ -1,5 +1,7 @@ --- title: "Exercise: Run commands efficiently" +seoTitle: "Run commands efficiently (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: run commands efficiently. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/06-lab.md b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/06-lab.md index 61df4ca..97af67c 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/06-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/06-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Command-line essentials review" +seoTitle: "Linux command line Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on Linux command line: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/07-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/07-quiz.md index 4650deb..7433a44 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/07-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/07-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Linux command line quiz" +seoTitle: "Linux command line Quiz: RHCSA Practice Questions" +description: "Test yourself on Linux command line with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 8 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/08-summary.md b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/08-summary.md index f1f03e4..4aa67d9 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/08-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/08-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Linux command line cheat sheet" +seoTitle: "Linux command line Cheat Sheet (RHCSA)" +description: "Linux command line cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/_chapter.yml index 742ca59..23ed973 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch02-command-line-essentials/_chapter.yml @@ -1,4 +1,6 @@ title: Command-line essentials +seoTitle: "Linux Command Line Basics for Beginners (RHCSA)" +seoDescription: "Learn the Linux command line from zero: the shell, SSH logins, running commands, reading files, Tab completion and history. RHCSA chapter 2." goal: Log in to a Linux system, run commands from the Bash shell, and save time with completion, history and line editing. objectives: - Explain what Linux, a distribution and the shell are, read the shell prompt, and log in to another machine with SSH. diff --git a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/01-file-system-hierarchy.md b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/01-file-system-hierarchy.md index f9136d6..bb01c8b 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/01-file-system-hierarchy.md +++ b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/01-file-system-hierarchy.md @@ -1,5 +1,7 @@ --- title: The directory tree +seoTitle: "Linux Directory Structure Explained (/etc, /var)" +description: "The Linux file system hierarchy: what lives in /etc, /var, /usr, /home and the other top directories. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 12 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/02-paths-and-navigation.md b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/02-paths-and-navigation.md index b758036..6b52f8f 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/02-paths-and-navigation.md +++ b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/02-paths-and-navigation.md @@ -1,5 +1,7 @@ --- title: Paths and finding your way +seoTitle: "Absolute and Relative Paths: cd, pwd, ls" +description: "Move around Linux with cd, pwd and ls using absolute and relative paths and hidden files. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/03-exercise-navigate.md b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/03-exercise-navigate.md index bc98cee..14d0609 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/03-exercise-navigate.md +++ b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/03-exercise-navigate.md @@ -1,5 +1,7 @@ --- title: "Exercise: Find your way around" +seoTitle: "Find your way around (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: find your way around. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/04-manage-files.md b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/04-manage-files.md index 4335cba..f749092 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/04-manage-files.md +++ b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/04-manage-files.md @@ -1,5 +1,7 @@ --- title: Create, copy, move and remove +seoTitle: "Linux cp, mv, rm and mkdir With Examples" +description: "Create, copy, move, rename and delete files and directories safely on the Linux command line. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/05-exercise-manage-files.md b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/05-exercise-manage-files.md index b790c42..359b014 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/05-exercise-manage-files.md +++ b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/05-exercise-manage-files.md @@ -1,5 +1,7 @@ --- title: "Exercise: Organise a website's files" +seoTitle: "Organise a website's files (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: organise a website's files. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/06-links.md b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/06-links.md index 14e8184..8504185 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/06-links.md +++ b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/06-links.md @@ -1,5 +1,7 @@ --- title: Hard links and symbolic links +seoTitle: "Hard Links vs Symbolic Links in Linux (ln -s)" +description: "The difference between hard and symbolic links, inodes, and when to use ln and ln -s. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/07-exercise-links.md b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/07-exercise-links.md index 3f71945..e631251 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/07-exercise-links.md +++ b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/07-exercise-links.md @@ -1,5 +1,7 @@ --- title: "Exercise: Switch releases with a link" +seoTitle: "Switch releases with a link (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: switch releases with a link. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/08-expansions.md b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/08-expansions.md index 62e0194..9b9408f 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/08-expansions.md +++ b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/08-expansions.md @@ -1,5 +1,7 @@ --- title: Work on many files at once +seoTitle: "Bash Wildcards, Brace Expansion and Globbing" +description: "Work on many files at once with wildcards, brace expansion, tilde and command substitution. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/09-lab.md index c0abbe0..fb2752d 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Files and directories review" +seoTitle: "Linux files and directories Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on Linux files and directories: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/10-quiz.md index 4138568..878b8dc 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Linux files and directories quiz" +seoTitle: "Linux files and directories Quiz: RHCSA Practice Questions" +description: "Test yourself on Linux files and directories with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/11-summary.md index f51395f..49f8efc 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Linux files and directories cheat sheet" +seoTitle: "Linux files and directories Cheat Sheet (RHCSA)" +description: "Linux files and directories cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 6 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/_chapter.yml index d48fede..5510e30 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch03-files-and-directories/_chapter.yml @@ -1,4 +1,6 @@ title: Files and directories +seoTitle: "Linux Files and Directories: ls, cp, mv, rm, ln (RHCSA)" +seoDescription: "Navigate the Linux directory tree, use absolute and relative paths, copy, move and delete files, and create hard and symbolic links." goal: Find your way around the Linux directory tree, and create, copy, move, link and remove files from the shell, using patterns to work on many files at once. objectives: - Describe how Linux organises files in one directory tree, and what the main directories hold. diff --git a/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/01-manual-pages.md b/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/01-manual-pages.md index 14ab869..4acfe8f 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/01-manual-pages.md +++ b/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/01-manual-pages.md @@ -1,5 +1,7 @@ --- title: Read manual pages +seoTitle: "How to Read Linux man Pages" +description: "Read man pages and their sections, search inside them and find the option you need. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/02-exercise-manual-pages.md b/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/02-exercise-manual-pages.md index 3cca46e..3b9d4d3 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/02-exercise-manual-pages.md +++ b/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/02-exercise-manual-pages.md @@ -1,5 +1,7 @@ --- title: "Exercise: Find answers in manual pages" +seoTitle: "Find answers in manual pages (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: find answers in manual pages. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/03-searching-for-help.md b/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/03-searching-for-help.md index 8ebb6b3..598a4ca 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/03-searching-for-help.md +++ b/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/03-searching-for-help.md @@ -1,5 +1,7 @@ --- title: Find the right command +seoTitle: "man -k, apropos, --help and info Explained" +description: "Find the right command with man -k and apropos, --help, info and package documentation. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/04-exercise-find-commands.md b/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/04-exercise-find-commands.md index 931317d..6163b5e 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/04-exercise-find-commands.md +++ b/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/04-exercise-find-commands.md @@ -1,5 +1,7 @@ --- title: "Exercise: Find commands you have never used" +seoTitle: "Find commands you have never used (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: find commands you have never used. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/05-lab.md b/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/05-lab.md index b30c625..becf8e7 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/05-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/05-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Getting help review" +seoTitle: "Linux man pages Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on Linux man pages: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/06-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/06-quiz.md index 48ca5bf..1f651d7 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/06-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/06-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Linux man pages quiz" +seoTitle: "Linux man pages Quiz: RHCSA Practice Questions" +description: "Test yourself on Linux man pages with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 8 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/07-summary.md b/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/07-summary.md index 15f3399..a6fe11a 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/07-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/07-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Linux man pages cheat sheet" +seoTitle: "Linux man pages Cheat Sheet (RHCSA)" +description: "Linux man pages cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 4 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/_chapter.yml index ea1f264..321ab62 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch04-getting-help/_chapter.yml @@ -1,4 +1,6 @@ title: Getting help +seoTitle: "Linux man Pages and Getting Help (RHCSA)" +seoDescription: "Find answers yourself on Linux: read man pages, search them with man -k, and use --help, info and /usr/share/doc. RHCSA chapter 4." goal: Find answers on the system itself, with manual pages, keyword searches, command help and package documentation, instead of guessing. objectives: - Read manual pages, choose the right section, move around and search inside them, and decode a SYNOPSIS line. diff --git a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/01-redirection-and-pipes.md b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/01-redirection-and-pipes.md index 7fc7711..702606e 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/01-redirection-and-pipes.md +++ b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/01-redirection-and-pipes.md @@ -1,5 +1,7 @@ --- title: Redirection and pipes +seoTitle: "Linux Redirection and Pipes: >, >>, 2>, |" +description: "Redirect standard output and errors to files and chain commands with pipes and tee. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/02-exercise-redirection.md b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/02-exercise-redirection.md index c56c9ff..66dd50c 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/02-exercise-redirection.md +++ b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/02-exercise-redirection.md @@ -1,5 +1,7 @@ --- title: "Exercise: Capture and combine output" +seoTitle: "Capture and combine output (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: capture and combine output. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/03-grep.md b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/03-grep.md index e3be840..7e89109 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/03-grep.md +++ b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/03-grep.md @@ -1,5 +1,7 @@ --- title: Search text with grep +seoTitle: "grep Command in Linux With Regex Examples" +description: "Search text with grep and regular expressions: -i, -v, -r, -E, anchors and character classes. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/04-exercise-grep.md b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/04-exercise-grep.md index 0358d57..a3fba0f 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/04-exercise-grep.md +++ b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/04-exercise-grep.md @@ -1,5 +1,7 @@ --- title: "Exercise: Answer questions with grep" +seoTitle: "Answer questions with grep (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: answer questions with grep. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/05-vim.md b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/05-vim.md index c6b6298..4c559cf 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/05-vim.md +++ b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/05-vim.md @@ -1,5 +1,7 @@ --- title: Edit files with vim +seoTitle: "Vim for Beginners: Edit, Save and Quit" +description: "Edit files with vim: modes, moving, copying, deleting, undo, search and replace, saving and quitting. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/06-exercise-vim.md b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/06-exercise-vim.md index 034d028..4652b20 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/06-exercise-vim.md +++ b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/06-exercise-vim.md @@ -1,5 +1,7 @@ --- title: "Exercise: Create and edit a file with vim" +seoTitle: "Create and edit a file with vim (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: create and edit a file with vim. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/07-shell-environment.md b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/07-shell-environment.md index a822df3..0035e15 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/07-shell-environment.md +++ b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/07-shell-environment.md @@ -1,5 +1,7 @@ --- title: Variables, aliases and startup files +seoTitle: "Bash Variables, PATH, Aliases and .bashrc" +description: "Shell and environment variables, export, PATH, aliases and the Bash start-up files. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/08-exercise-environment.md b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/08-exercise-environment.md index 0d3026c..d280ab7 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/08-exercise-environment.md +++ b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/08-exercise-environment.md @@ -1,5 +1,7 @@ --- title: "Exercise: Customise your shell" +seoTitle: "Customise your shell (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: customise your shell. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/09-lab.md index df5ab60..c4b4d6e 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Text and environment review" +seoTitle: "grep, vim and Bash Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on grep, vim and Bash: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/10-quiz.md index 2102f0d..3a4a3a4 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "grep, vim and Bash quiz" +seoTitle: "grep, vim and Bash Quiz: RHCSA Practice Questions" +description: "Test yourself on grep, vim and Bash with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/11-summary.md index f04d3bc..b7a982f 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "grep, vim and Bash cheat sheet" +seoTitle: "grep, vim and Bash Cheat Sheet (RHCSA)" +description: "grep, vim and Bash cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 6 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/_chapter.yml index fce0924..29c461a 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch05-text-and-editors/_chapter.yml @@ -1,4 +1,6 @@ title: Text, editors and the shell environment +seoTitle: "grep, Pipes, vim and the Bash Environment (RHCSA)" +seoDescription: "Redirect output and build pipelines, search text with grep and regular expressions, edit files in vim and customise Bash. RHCSA chapter 5." goal: Send command output where you want it, search text with grep, edit files with vim, and set up your shell with variables, aliases and startup files. objectives: - Redirect standard output and standard error to files, discard them, and connect commands with pipes and tee. diff --git a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/01-users-and-groups.md b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/01-users-and-groups.md index c42d2d0..4f7630c 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/01-users-and-groups.md +++ b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/01-users-and-groups.md @@ -1,5 +1,7 @@ --- title: Users, groups and the account files +seoTitle: "Linux Users and Groups: /etc/passwd, /etc/group" +description: "How Linux stores users and groups in /etc/passwd, /etc/shadow and /etc/group, and what UIDs mean. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/02-superuser.md b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/02-superuser.md index a1810af..4190b74 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/02-superuser.md +++ b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/02-superuser.md @@ -1,5 +1,7 @@ --- title: Become root safely +seoTitle: "sudo vs su in Linux, and the sudoers File" +description: "Become root safely with su and sudo, and grant limited rights with a sudoers drop-in file. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/03-exercise-superuser.md b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/03-exercise-superuser.md index 512c5ff..4185b83 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/03-exercise-superuser.md +++ b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/03-exercise-superuser.md @@ -1,5 +1,7 @@ --- title: "Exercise: Grant limited root access" +seoTitle: "Grant limited root access (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: grant limited root access. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/04-accounts-and-groups.md b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/04-accounts-and-groups.md index 6e688f9..e033ea9 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/04-accounts-and-groups.md +++ b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/04-accounts-and-groups.md @@ -1,5 +1,7 @@ --- title: Manage accounts and groups +seoTitle: "useradd, usermod, groupadd and userdel Examples" +description: "Create, change and delete Linux user accounts and groups with useradd, usermod and groupadd. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/05-exercise-accounts.md b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/05-exercise-accounts.md index 52b16ff..7726abb 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/05-exercise-accounts.md +++ b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/05-exercise-accounts.md @@ -1,5 +1,7 @@ --- title: "Exercise: Set up a web team" +seoTitle: "Set up a web team (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: set up a web team. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/06-passwords.md b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/06-passwords.md index d6cf1ae..6b34d34 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/06-passwords.md +++ b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/06-passwords.md @@ -1,5 +1,7 @@ --- title: Passwords and password ageing +seoTitle: "Linux Password Ageing With chage and passwd" +description: "Set passwords, force a change at next login, lock accounts and set ageing with chage. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/07-exercise-passwords.md b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/07-exercise-passwords.md index 6e61aea..aef1f86 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/07-exercise-passwords.md +++ b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/07-exercise-passwords.md @@ -1,5 +1,7 @@ --- title: "Exercise: Onboard and offboard an intern" +seoTitle: "Onboard and offboard an intern (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: onboard and offboard an intern. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/08-lab.md b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/08-lab.md index cef3b8a..52d6bc8 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/08-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/08-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Users and groups review" +seoTitle: "Linux users and groups Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on Linux users and groups: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/09-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/09-quiz.md index 456150b..f1328f2 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/09-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/09-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Linux users and groups quiz" +seoTitle: "Linux users and groups Quiz: RHCSA Practice Questions" +description: "Test yourself on Linux users and groups with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/10-summary.md b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/10-summary.md index 3a54673..69b0eb6 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/10-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/10-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Linux users and groups cheat sheet" +seoTitle: "Linux users and groups Cheat Sheet (RHCSA)" +description: "Linux users and groups cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/_chapter.yml index c1893fc..2aad56a 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch06-users-and-groups/_chapter.yml @@ -1,4 +1,6 @@ title: Users and groups +seoTitle: "Linux Users and Groups: useradd, sudo, passwd (RHCSA)" +seoDescription: "Create and manage Linux users and groups, grant sudo access safely and set password ageing with chage. RHCSA (EX200) chapter 6." goal: Create and manage local user accounts and groups, give administrators controlled root access with sudo, and set password policies. objectives: - Explain users, groups, UIDs and GIDs, and read the account databases /etc/passwd, /etc/group and /etc/shadow. diff --git a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/01-reading-permissions.md b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/01-reading-permissions.md index 8a3a934..50830dc 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/01-reading-permissions.md +++ b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/01-reading-permissions.md @@ -1,5 +1,7 @@ --- title: Reading file permissions +seoTitle: "Linux File Permissions Explained (rwx, ls -l)" +description: "Read rwx permissions for owner, group and others in ls -l, and how they apply to directories. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/02-exercise-reading.md b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/02-exercise-reading.md index ceeb1b0..f071ec4 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/02-exercise-reading.md +++ b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/02-exercise-reading.md @@ -1,5 +1,7 @@ --- title: "Exercise: Who can read this?" +seoTitle: "Who can read this? (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: who can read this?. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/03-changing-permissions.md b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/03-changing-permissions.md index 92d1041..6373684 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/03-changing-permissions.md +++ b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/03-changing-permissions.md @@ -1,5 +1,7 @@ --- title: Changing permissions and ownership +seoTitle: "chmod and chown Explained With Examples" +description: "Change permissions with symbolic and octal chmod, ownership with chown and chgrp, and use capital X. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/04-exercise-changing.md b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/04-exercise-changing.md index fb26c20..0e33443 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/04-exercise-changing.md +++ b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/04-exercise-changing.md @@ -1,5 +1,7 @@ --- title: "Exercise: Secure a web folder" +seoTitle: "Secure a web folder (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: secure a web folder. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/05-defaults-and-special.md b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/05-defaults-and-special.md index 45d0ebd..71524bf 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/05-defaults-and-special.md +++ b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/05-defaults-and-special.md @@ -1,5 +1,7 @@ --- title: Default permissions and shared directories +seoTitle: "umask, setuid, setgid and Sticky Bit Explained" +description: "Default permissions with umask, and setuid, setgid and the sticky bit for shared directories. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/06-exercise-shared.md b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/06-exercise-shared.md index a2b8fbe..f7465a1 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/06-exercise-shared.md +++ b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/06-exercise-shared.md @@ -1,5 +1,7 @@ --- title: "Exercise: Build a team directory and a drop box" +seoTitle: "Build a team directory and a drop box (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: build a team directory and a drop box. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/07-acls.md b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/07-acls.md index 59dd068..4fffa65 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/07-acls.md +++ b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/07-acls.md @@ -1,5 +1,7 @@ --- title: Access control lists +seoTitle: "Linux ACLs: setfacl and getfacl With Examples" +description: "Grant extra users and groups access with ACLs, read the mask and set default ACLs for new files. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/08-exercise-acls.md b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/08-exercise-acls.md index 5e2219d..5ce9336 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/08-exercise-acls.md +++ b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/08-exercise-acls.md @@ -1,5 +1,7 @@ --- title: "Exercise: Give the auditors read access" +seoTitle: "Give the auditors read access (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: give the auditors read access. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/09-lab.md index 2189af7..c8d4bf8 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Permissions and ACLs review" +seoTitle: "Linux permissions and ACLs Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on Linux permissions and ACLs: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 35 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/10-quiz.md index 14e228d..fe658dc 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Linux permissions and ACLs quiz" +seoTitle: "Linux permissions and ACLs Quiz: RHCSA Practice Questions" +description: "Test yourself on Linux permissions and ACLs with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/11-summary.md index 32646c6..5a4ac08 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Linux permissions and ACLs cheat sheet" +seoTitle: "Linux permissions and ACLs Cheat Sheet (RHCSA)" +description: "Linux permissions and ACLs cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/_chapter.yml index c3f1e0f..2c6fc22 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch07-permissions-and-acls/_chapter.yml @@ -1,4 +1,6 @@ title: Permissions and ACLs +seoTitle: "Linux File Permissions, chmod and ACLs (RHCSA)" +seoDescription: "Read and change Linux permissions with chmod and chown, use umask, setgid and sticky bits, and grant access with ACLs (setfacl)." goal: Read and change file permissions and ownership, build shared team directories with setgid and sticky bits, and grant exceptions with access control lists. objectives: - Read the permission string of ls -l and predict which user class applies and what it allows on files and directories. diff --git a/content/programs/rhel9-sysadmin/chapters/ch08-processes/01-processes.md b/content/programs/rhel9-sysadmin/chapters/ch08-processes/01-processes.md index b08684c..28bd8e1 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch08-processes/01-processes.md +++ b/content/programs/rhel9-sysadmin/chapters/ch08-processes/01-processes.md @@ -1,5 +1,7 @@ --- title: What a process is +seoTitle: "Linux Processes: ps, top and /proc Explained" +description: "What a Linux process is, its states and parents, and how to list processes with ps, pgrep and top. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch08-processes/02-exercise-inspect.md b/content/programs/rhel9-sysadmin/chapters/ch08-processes/02-exercise-inspect.md index 692a29c..0bf55e9 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch08-processes/02-exercise-inspect.md +++ b/content/programs/rhel9-sysadmin/chapters/ch08-processes/02-exercise-inspect.md @@ -1,5 +1,7 @@ --- title: "Exercise: Find your way around the process table" +seoTitle: "Find your way around the process table (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: find your way around the process table. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch08-processes/03-jobs.md b/content/programs/rhel9-sysadmin/chapters/ch08-processes/03-jobs.md index 0f836b1..e83b492 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch08-processes/03-jobs.md +++ b/content/programs/rhel9-sysadmin/chapters/ch08-processes/03-jobs.md @@ -1,5 +1,7 @@ --- title: Jobs and the background +seoTitle: "Linux Background Jobs: bg, fg, jobs and nohup" +description: "Run commands in the background, move jobs between foreground and background, and survive logouts. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch08-processes/04-exercise-jobs.md b/content/programs/rhel9-sysadmin/chapters/ch08-processes/04-exercise-jobs.md index 5ce821f..b02d4a3 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch08-processes/04-exercise-jobs.md +++ b/content/programs/rhel9-sysadmin/chapters/ch08-processes/04-exercise-jobs.md @@ -1,5 +1,7 @@ --- title: "Exercise: Juggle jobs in one terminal" +seoTitle: "Juggle jobs in one terminal (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: juggle jobs in one terminal. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch08-processes/05-signals.md b/content/programs/rhel9-sysadmin/chapters/ch08-processes/05-signals.md index 41277c1..2be4a59 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch08-processes/05-signals.md +++ b/content/programs/rhel9-sysadmin/chapters/ch08-processes/05-signals.md @@ -1,5 +1,7 @@ --- title: Signals and ending processes +seoTitle: "kill, pkill and Signals: SIGTERM vs SIGKILL" +description: "End and pause processes with kill and pkill, and when to use SIGTERM, SIGKILL, SIGHUP and SIGSTOP. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch08-processes/06-exercise-signals.md b/content/programs/rhel9-sysadmin/chapters/ch08-processes/06-exercise-signals.md index e3132fb..1fea480 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch08-processes/06-exercise-signals.md +++ b/content/programs/rhel9-sysadmin/chapters/ch08-processes/06-exercise-signals.md @@ -1,5 +1,7 @@ --- title: "Exercise: Stop a runaway process the right way" +seoTitle: "Stop a runaway process the right way (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: stop a runaway process the right way. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch08-processes/07-monitoring.md b/content/programs/rhel9-sysadmin/chapters/ch08-processes/07-monitoring.md index 5a9cc39..6e4cbc2 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch08-processes/07-monitoring.md +++ b/content/programs/rhel9-sysadmin/chapters/ch08-processes/07-monitoring.md @@ -1,5 +1,7 @@ --- title: Monitoring load and setting priorities +seoTitle: "Load Average, nice, renice and tuned on RHEL 9" +description: "Read load averages and top, change process priority with nice and renice, and pick a tuned profile. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch08-processes/08-exercise-monitoring.md b/content/programs/rhel9-sysadmin/chapters/ch08-processes/08-exercise-monitoring.md index cc0dc58..0664426 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch08-processes/08-exercise-monitoring.md +++ b/content/programs/rhel9-sysadmin/chapters/ch08-processes/08-exercise-monitoring.md @@ -1,5 +1,7 @@ --- title: "Exercise: Find the slowdown and tune the server" +seoTitle: "Find the slowdown and tune the server (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: find the slowdown and tune the server. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch08-processes/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch08-processes/09-lab.md index d136bcd..eafb767 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch08-processes/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch08-processes/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Processes review" +seoTitle: "Linux processes Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on Linux processes: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch08-processes/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch08-processes/10-quiz.md index 891ac2c..297762f 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch08-processes/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch08-processes/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Linux processes quiz" +seoTitle: "Linux processes Quiz: RHCSA Practice Questions" +description: "Test yourself on Linux processes with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch08-processes/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch08-processes/11-summary.md index 463fbd5..3420a14 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch08-processes/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch08-processes/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Linux processes cheat sheet" +seoTitle: "Linux processes Cheat Sheet (RHCSA)" +description: "Linux processes cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch08-processes/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch08-processes/_chapter.yml index 3970db9..9898076 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch08-processes/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch08-processes/_chapter.yml @@ -1,4 +1,6 @@ title: Processes +seoTitle: "Linux Processes: ps, kill, jobs, nice and top (RHCSA)" +seoDescription: "Inspect Linux processes with ps and top, run jobs in the background, send signals with kill and tune priority with nice and tuned." goal: See what is running, control jobs and signals, and judge and tune how processes share the machine. objectives: - Explain processes, PIDs and states, and list and trace them with ps, pstree and /proc. diff --git a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/01-services.md b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/01-services.md index e9226f0..d58d2aa 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/01-services.md +++ b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/01-services.md @@ -1,5 +1,7 @@ --- title: Managing services with systemd +seoTitle: "systemctl Commands: Start, Enable and Mask Services" +description: "Manage systemd services with systemctl: status, start, stop, enable, disable, mask and failed units. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/02-exercise-services.md b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/02-exercise-services.md index 84b1a6a..298c040 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/02-exercise-services.md +++ b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/02-exercise-services.md @@ -1,5 +1,7 @@ --- title: "Exercise: Control a service" +seoTitle: "Control a service (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: control a service. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/03-unit-files.md b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/03-unit-files.md index 5a7a3b4..02965f0 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/03-unit-files.md +++ b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/03-unit-files.md @@ -1,5 +1,7 @@ --- title: Writing and changing unit files +seoTitle: "How to Write a systemd Service Unit File" +description: "Write your own systemd unit, use drop-in overrides, restart policies and daemon-reload. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/04-exercise-unit-files.md b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/04-exercise-unit-files.md index 3ba4426..66040d3 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/04-exercise-unit-files.md +++ b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/04-exercise-unit-files.md @@ -1,5 +1,7 @@ --- title: "Exercise: Write your own service" +seoTitle: "Write your own service (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: write your own service. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/05-targets-and-boot.md b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/05-targets-and-boot.md index 053f23e..bf51a14 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/05-targets-and-boot.md +++ b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/05-targets-and-boot.md @@ -1,5 +1,7 @@ --- title: Targets and the boot process +seoTitle: "systemd Targets and Boot Process (set-default)" +description: "How RHEL 9 boots, systemd targets, systemctl set-default and kernel arguments with grubby. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/06-exercise-boot.md b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/06-exercise-boot.md index bcb061e..121fbc2 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/06-exercise-boot.md +++ b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/06-exercise-boot.md @@ -1,5 +1,7 @@ --- title: "Exercise: Change how the server boots" +seoTitle: "Change how the server boots (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: change how the server boots. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/07-recovery.md b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/07-recovery.md index 380f694..837df8f 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/07-recovery.md +++ b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/07-recovery.md @@ -1,5 +1,7 @@ --- title: Recovering a system that will not boot normally +seoTitle: "Reset the Root Password and Rescue a RHEL 9 Boot" +description: "Recover a system that will not boot: rescue and emergency targets, rd.break and root password reset. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/08-exercise-fstab.md b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/08-exercise-fstab.md index ce2e4c1..db59f12 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/08-exercise-fstab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/08-exercise-fstab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Check /etc/fstab before you reboot" +seoTitle: "Check /etc/fstab before you reboot (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: check /etc/fstab before you reboot. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/09-lab.md index a1bab56..9f4f26c 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Services and boot review" +seoTitle: "systemd and boot Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on systemd and boot: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 35 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/10-quiz.md index 6a664ab..5bb5600 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "systemd and boot quiz" +seoTitle: "systemd and boot Quiz: RHCSA Practice Questions" +description: "Test yourself on systemd and boot with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/11-summary.md index f91f547..9c8a907 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "systemd and boot cheat sheet" +seoTitle: "systemd and boot Cheat Sheet (RHCSA)" +description: "systemd and boot cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/_chapter.yml index 4f30b40..566e4c7 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch09-systemd-and-boot/_chapter.yml @@ -1,4 +1,6 @@ title: Services and the boot process +seoTitle: "systemctl, systemd Services and the Boot Process (RHCSA)" +seoDescription: "Manage services with systemctl, write systemd unit files, change targets and recover a RHEL 9 system that will not boot. RHCSA chapter 9." goal: Manage services with systemd, write your own units, understand the boot sequence and targets, and recover a system that will not boot normally. objectives: - Start, stop, enable, disable and mask services, and separate "running now" from "starts at boot". diff --git a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/01-ssh-basics.md b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/01-ssh-basics.md index d40e751..de94bb1 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/01-ssh-basics.md +++ b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/01-ssh-basics.md @@ -1,5 +1,7 @@ --- title: Logging in to other machines with SSH +seoTitle: "SSH Basics: Log In to Remote Linux Servers" +description: "Log in with ssh, verify host keys and fingerprints, and run remote commands. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/02-exercise-hostkeys.md b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/02-exercise-hostkeys.md index 269a7d0..f2bc432 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/02-exercise-hostkeys.md +++ b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/02-exercise-hostkeys.md @@ -1,5 +1,7 @@ --- title: "Exercise: Verify a server's identity" +seoTitle: "Verify a server's identity (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: verify a server's identity. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/03-keys.md b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/03-keys.md index e7ff760..e461a96 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/03-keys.md +++ b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/03-keys.md @@ -1,5 +1,7 @@ --- title: Key-based authentication +seoTitle: "SSH Key Authentication: ssh-keygen and ssh-copy-id" +description: "Set up passwordless SSH logins with ssh-keygen, ssh-copy-id, the agent and correct permissions. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/04-exercise-keys.md b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/04-exercise-keys.md index af3ffda..5a099eb 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/04-exercise-keys.md +++ b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/04-exercise-keys.md @@ -1,5 +1,7 @@ --- title: "Exercise: Passwordless access for an account" +seoTitle: "Passwordless access for an account (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: passwordless access for an account. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/05-transfer-and-config.md b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/05-transfer-and-config.md index 6d57039..96e6f6a 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/05-transfer-and-config.md +++ b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/05-transfer-and-config.md @@ -1,5 +1,7 @@ --- title: Copying files and saving connection settings +seoTitle: "scp, sftp, rsync and ~/.ssh/config Examples" +description: "Copy files between machines with scp, sftp and rsync, and save connection settings in ~/.ssh/config. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/06-exercise-transfer.md b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/06-exercise-transfer.md index 16f9dac..d7cdd6d 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/06-exercise-transfer.md +++ b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/06-exercise-transfer.md @@ -1,5 +1,7 @@ --- title: "Exercise: Move files between machines" +seoTitle: "Move files between machines (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: move files between machines. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/07-hardening.md b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/07-hardening.md index cb6e538..ae5acdf 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/07-hardening.md +++ b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/07-hardening.md @@ -1,5 +1,7 @@ --- title: Configuring and hardening the SSH server +seoTitle: "Harden sshd: Disable Root and Password Login" +description: "Configure sshd safely with drop-in files: disable password and root logins and test before reloading. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/08-exercise-hardening.md b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/08-exercise-hardening.md index a03ae94..d2cd6cd 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/08-exercise-hardening.md +++ b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/08-exercise-hardening.md @@ -1,5 +1,7 @@ --- title: "Exercise: Harden sshd, safely" +seoTitle: "Harden sshd, safely (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: harden sshd, safely. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/09-lab.md index bc854e4..0e31a78 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Secure remote access review" +seoTitle: "SSH Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on SSH: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 35 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/10-quiz.md index b7c3bc0..adac8ed 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "SSH quiz" +seoTitle: "SSH Quiz: RHCSA Practice Questions" +description: "Test yourself on SSH with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/11-summary.md index be6ac42..c105485 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "SSH cheat sheet" +seoTitle: "SSH Cheat Sheet (RHCSA)" +description: "SSH cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/_chapter.yml index 3c1a3b3..dd91cfa 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch10-ssh-and-remote-access/_chapter.yml @@ -1,4 +1,6 @@ title: Secure remote access +seoTitle: "SSH Keys, scp and sshd Hardening (RHCSA)" +seoDescription: "Log in with SSH, set up key-based authentication, copy files with scp and rsync, and harden the SSH server safely. RHCSA chapter 10." goal: Log in to other machines safely with SSH, authenticate with keys, move files between hosts, and harden the SSH server without locking yourself out. objectives: - Connect with ssh, verify host keys, and handle a changed key correctly. diff --git a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/01-reading-logs.md b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/01-reading-logs.md index 64fcfeb..c0e8ccc 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/01-reading-logs.md +++ b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/01-reading-logs.md @@ -1,5 +1,7 @@ --- title: Reading the system logs +seoTitle: "journalctl Tutorial: Read Linux System Logs" +description: "Read and filter logs with journalctl by unit, priority and time, and with /var/log and logger. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/02-exercise-reading.md b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/02-exercise-reading.md index a7f2610..26e22b9 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/02-exercise-reading.md +++ b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/02-exercise-reading.md @@ -1,5 +1,7 @@ --- title: "Exercise: Find it in the logs" +seoTitle: "Find it in the logs (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: find it in the logs. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/03-persistence-and-rotation.md b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/03-persistence-and-rotation.md index bb60fb8..a9af4c4 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/03-persistence-and-rotation.md +++ b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/03-persistence-and-rotation.md @@ -1,5 +1,7 @@ --- title: "Keeping logs: persistence and rotation" +seoTitle: "Persistent journald Logs, rsyslog and logrotate" +description: "Make the journal persistent, send messages to files with rsyslog and rotate logs with logrotate. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/04-exercise-persistence.md b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/04-exercise-persistence.md index d81851e..507a9fb 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/04-exercise-persistence.md +++ b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/04-exercise-persistence.md @@ -1,5 +1,7 @@ --- title: "Exercise: Keep and rotate your logs" +seoTitle: "Keep and rotate your logs (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: keep and rotate your logs. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/05-time.md b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/05-time.md index aa864dc..2083836 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/05-time.md +++ b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/05-time.md @@ -1,5 +1,7 @@ --- title: Keeping the right time +seoTitle: "timedatectl and chrony: Time Zones and NTP" +description: "Set time zones with timedatectl and keep accurate time with chrony and NTP sources. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/06-exercise-time.md b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/06-exercise-time.md index 81bfaf4..3c50119 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/06-exercise-time.md +++ b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/06-exercise-time.md @@ -1,5 +1,7 @@ --- title: "Exercise: Time zone and time sources" +seoTitle: "Time zone and time sources (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: time zone and time sources. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/07-diagnosing.md b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/07-diagnosing.md index d33542f..70a6128 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/07-diagnosing.md +++ b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/07-diagnosing.md @@ -1,5 +1,7 @@ --- title: A method for diagnosing problems +seoTitle: "How to Troubleshoot a Failing systemd Service" +description: "A repeatable method to diagnose a failing service from its status, logs and configuration. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/08-exercise-diagnosing.md b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/08-exercise-diagnosing.md index e7a3a62..2faf4ce 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/08-exercise-diagnosing.md +++ b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/08-exercise-diagnosing.md @@ -1,5 +1,7 @@ --- title: "Exercise: Find and fix a failing service" +seoTitle: "Find and fix a failing service (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: find and fix a failing service. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/09-lab.md index ff681ee..c1cee28 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Logs and time review" +seoTitle: "Linux logs and time Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on Linux logs and time: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/10-quiz.md index 1b60c03..c012d9b 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Linux logs and time quiz" +seoTitle: "Linux logs and time Quiz: RHCSA Practice Questions" +description: "Test yourself on Linux logs and time with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/11-summary.md index c051ad1..0ac854b 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Linux logs and time cheat sheet" +seoTitle: "Linux logs and time Cheat Sheet (RHCSA)" +description: "Linux logs and time cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/_chapter.yml index 51bccef..000d507 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch11-logs-and-time/_chapter.yml @@ -1,4 +1,6 @@ title: Logs and time +seoTitle: "journalctl, rsyslog, Log Rotation and chrony (RHCSA)" +seoDescription: "Read logs with journalctl, make the journal persistent, rotate logs, set time zones and NTP with chrony, and diagnose failing services." goal: Read and filter the system logs, keep them across reboots and under control, keep the clock right, and use a calm method to diagnose problems. objectives: - Explain journald and rsyslog and filter the journal by unit, priority, boot and time. diff --git a/content/programs/rhel9-sysadmin/chapters/ch12-networking/01-network-basics.md b/content/programs/rhel9-sysadmin/chapters/ch12-networking/01-network-basics.md index 3bf27e8..ecf9a7b 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch12-networking/01-network-basics.md +++ b/content/programs/rhel9-sysadmin/chapters/ch12-networking/01-network-basics.md @@ -1,5 +1,7 @@ --- title: How hosts find each other on a network +seoTitle: "Linux Networking Basics: ip addr, Routes, Ports" +description: "IP addresses, subnets, routes, ports and ip, ping and ss commands for Linux administrators. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch12-networking/02-exercise-inspect.md b/content/programs/rhel9-sysadmin/chapters/ch12-networking/02-exercise-inspect.md index b214604..e1ea464 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch12-networking/02-exercise-inspect.md +++ b/content/programs/rhel9-sysadmin/chapters/ch12-networking/02-exercise-inspect.md @@ -1,5 +1,7 @@ --- title: "Exercise: Map the network" +seoTitle: "Map the network (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: map the network. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch12-networking/03-networkmanager.md b/content/programs/rhel9-sysadmin/chapters/ch12-networking/03-networkmanager.md index 1168b39..5b27e37 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch12-networking/03-networkmanager.md +++ b/content/programs/rhel9-sysadmin/chapters/ch12-networking/03-networkmanager.md @@ -1,5 +1,7 @@ --- title: Configuring the network with NetworkManager +seoTitle: "nmcli Static IP Configuration on RHEL 9" +description: "Configure static IP addresses, gateways and DNS with nmcli connection and NetworkManager. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch12-networking/04-exercise-nmcli.md b/content/programs/rhel9-sysadmin/chapters/ch12-networking/04-exercise-nmcli.md index 996fc7a..76e30d6 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch12-networking/04-exercise-nmcli.md +++ b/content/programs/rhel9-sysadmin/chapters/ch12-networking/04-exercise-nmcli.md @@ -1,5 +1,7 @@ --- title: "Exercise: Configure a static connection" +seoTitle: "Configure a static connection (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: configure a static connection. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch12-networking/05-names-and-dns.md b/content/programs/rhel9-sysadmin/chapters/ch12-networking/05-names-and-dns.md index 2427e31..3a97d6f 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch12-networking/05-names-and-dns.md +++ b/content/programs/rhel9-sysadmin/chapters/ch12-networking/05-names-and-dns.md @@ -1,5 +1,7 @@ --- title: Host names and name resolution +seoTitle: "Linux Hostname, /etc/hosts and DNS Resolution" +description: "Set the host name with hostnamectl and understand name resolution with /etc/hosts, DNS and dig. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch12-networking/06-exercise-names.md b/content/programs/rhel9-sysadmin/chapters/ch12-networking/06-exercise-names.md index 8f7ded7..99c19aa 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch12-networking/06-exercise-names.md +++ b/content/programs/rhel9-sysadmin/chapters/ch12-networking/06-exercise-names.md @@ -1,5 +1,7 @@ --- title: "Exercise: Names, hosts and DNS" +seoTitle: "Names, hosts and DNS (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: names, hosts and DNS. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch12-networking/07-troubleshooting.md b/content/programs/rhel9-sysadmin/chapters/ch12-networking/07-troubleshooting.md index 277c256..43e3813 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch12-networking/07-troubleshooting.md +++ b/content/programs/rhel9-sysadmin/chapters/ch12-networking/07-troubleshooting.md @@ -1,5 +1,7 @@ --- title: Troubleshooting network problems +seoTitle: "Troubleshooting Linux Network Problems Step by Step" +description: "A layer-by-layer method to find why a host or service cannot be reached. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch12-networking/08-exercise-troubleshooting.md b/content/programs/rhel9-sysadmin/chapters/ch12-networking/08-exercise-troubleshooting.md index d0fcc3e..cbdd236 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch12-networking/08-exercise-troubleshooting.md +++ b/content/programs/rhel9-sysadmin/chapters/ch12-networking/08-exercise-troubleshooting.md @@ -1,5 +1,7 @@ --- title: "Exercise: The service nobody can reach" +seoTitle: "The service nobody can reach (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: the service nobody can reach. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch12-networking/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch12-networking/09-lab.md index 814372e..8ba1565 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch12-networking/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch12-networking/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Networking review" +seoTitle: "Linux networking Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on Linux networking: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch12-networking/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch12-networking/10-quiz.md index 65198fd..31a4b1b 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch12-networking/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch12-networking/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Linux networking quiz" +seoTitle: "Linux networking Quiz: RHCSA Practice Questions" +description: "Test yourself on Linux networking with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch12-networking/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch12-networking/11-summary.md index 00cdf50..4d315e6 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch12-networking/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch12-networking/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Linux networking cheat sheet" +seoTitle: "Linux networking Cheat Sheet (RHCSA)" +description: "Linux networking cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch12-networking/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch12-networking/_chapter.yml index dba6f79..50b3b5d 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch12-networking/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch12-networking/_chapter.yml @@ -1,4 +1,6 @@ title: Networking +seoTitle: "nmcli and NetworkManager: Linux Networking (RHCSA)" +seoDescription: "Configure static IP addresses with nmcli, set host names and DNS, and troubleshoot Linux network problems step by step. RHCSA chapter 12." goal: Read and configure a host's network with ip and NetworkManager, manage names and DNS, and troubleshoot connections layer by layer. objectives: - Explain address, prefix, gateway and DNS, and inspect them with ip, ping and ss. diff --git a/content/programs/rhel9-sysadmin/chapters/ch13-software/01-rpm-basics.md b/content/programs/rhel9-sysadmin/chapters/ch13-software/01-rpm-basics.md index 23b0f4f..e7a04f0 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch13-software/01-rpm-basics.md +++ b/content/programs/rhel9-sysadmin/chapters/ch13-software/01-rpm-basics.md @@ -1,5 +1,7 @@ --- title: Packages and the RPM database +seoTitle: "rpm Command: Query and Verify Installed Packages" +description: "Query installed packages, their files and owners, and verify them with rpm -q, -ql, -qf and -V. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch13-software/02-exercise-rpm.md b/content/programs/rhel9-sysadmin/chapters/ch13-software/02-exercise-rpm.md index 82d24dc..b4ea0d9 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch13-software/02-exercise-rpm.md +++ b/content/programs/rhel9-sysadmin/chapters/ch13-software/02-exercise-rpm.md @@ -1,5 +1,7 @@ --- title: "Exercise: Interrogate the installed software" +seoTitle: "Interrogate the installed software (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: interrogate the installed software. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch13-software/03-dnf.md b/content/programs/rhel9-sysadmin/chapters/ch13-software/03-dnf.md index 9640882..21dc8b5 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch13-software/03-dnf.md +++ b/content/programs/rhel9-sysadmin/chapters/ch13-software/03-dnf.md @@ -1,5 +1,7 @@ --- title: Installing and updating software with dnf +seoTitle: "dnf Commands: Install, Update, Remove and History" +description: "Install, update and remove packages with dnf, search and inspect them, and undo with dnf history. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch13-software/04-exercise-dnf.md b/content/programs/rhel9-sysadmin/chapters/ch13-software/04-exercise-dnf.md index 5a6e9ea..6428160 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch13-software/04-exercise-dnf.md +++ b/content/programs/rhel9-sysadmin/chapters/ch13-software/04-exercise-dnf.md @@ -1,5 +1,7 @@ --- title: "Exercise: Install, inspect and undo" +seoTitle: "Install, inspect and undo (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: install, inspect and undo. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch13-software/05-repositories.md b/content/programs/rhel9-sysadmin/chapters/ch13-software/05-repositories.md index 70cb582..4e1c253 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch13-software/05-repositories.md +++ b/content/programs/rhel9-sysadmin/chapters/ch13-software/05-repositories.md @@ -1,5 +1,7 @@ --- title: Repositories and package signatures +seoTitle: "Add a dnf Repository and GPG Keys on RHEL 9" +description: "Configure repositories in /etc/yum.repos.d, check package signatures and build a local repo. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch13-software/06-exercise-local-repo.md b/content/programs/rhel9-sysadmin/chapters/ch13-software/06-exercise-local-repo.md index e323c7b..8a70930 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch13-software/06-exercise-local-repo.md +++ b/content/programs/rhel9-sysadmin/chapters/ch13-software/06-exercise-local-repo.md @@ -1,5 +1,7 @@ --- title: "Exercise: Serve your own repository" +seoTitle: "Serve your own repository (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: serve your own repository. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch13-software/07-modules-and-updates.md b/content/programs/rhel9-sysadmin/chapters/ch13-software/07-modules-and-updates.md index 9772d6c..a6cd59b 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch13-software/07-modules-and-updates.md +++ b/content/programs/rhel9-sysadmin/chapters/ch13-software/07-modules-and-updates.md @@ -1,5 +1,7 @@ --- title: Module streams and keeping systems updated +seoTitle: "dnf Module Streams and Updates on RHEL 9" +description: "Choose application versions with module streams and keep systems updated safely. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch13-software/08-exercise-modules.md b/content/programs/rhel9-sysadmin/chapters/ch13-software/08-exercise-modules.md index 291be41..8695482 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch13-software/08-exercise-modules.md +++ b/content/programs/rhel9-sysadmin/chapters/ch13-software/08-exercise-modules.md @@ -1,5 +1,7 @@ --- title: "Exercise: Choose a version and check for updates" +seoTitle: "Choose a version and check for updates (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: choose a version and check for updates. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch13-software/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch13-software/09-lab.md index d50dadd..854f0e1 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch13-software/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch13-software/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Software review" +seoTitle: "dnf and rpm Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on dnf and rpm: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch13-software/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch13-software/10-quiz.md index f342d51..5021e89 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch13-software/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch13-software/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "dnf and rpm quiz" +seoTitle: "dnf and rpm Quiz: RHCSA Practice Questions" +description: "Test yourself on dnf and rpm with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch13-software/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch13-software/11-summary.md index 2adabdf..3b32c5a 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch13-software/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch13-software/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "dnf and rpm cheat sheet" +seoTitle: "dnf and rpm Cheat Sheet (RHCSA)" +description: "dnf and rpm cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch13-software/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch13-software/_chapter.yml index 313ca25..0e6d45c 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch13-software/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch13-software/_chapter.yml @@ -1,4 +1,6 @@ title: Software management +seoTitle: "dnf, rpm and Repositories on RHEL 9 (RHCSA)" +seoDescription: "Install, update and remove software with dnf, query packages with rpm, add repositories and choose module streams on RHEL 9." goal: Query and verify installed packages with rpm, manage software with dnf, work with repositories and signatures, build a local repository, and choose module streams and updates. objectives: - Read package names and query and verify installed packages with rpm. diff --git a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/01-tar.md b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/01-tar.md index 6bfa946..64167c7 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/01-tar.md +++ b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/01-tar.md @@ -1,5 +1,7 @@ --- title: Bundling files with tar +seoTitle: "tar Command in Linux: Create and Extract Archives" +description: "Create, list and extract tar archives, extract single files and exclude what you do not need. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/02-exercise-tar.md b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/02-exercise-tar.md index 6c6d453..c17894c 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/02-exercise-tar.md +++ b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/02-exercise-tar.md @@ -1,5 +1,7 @@ --- title: "Exercise: Archive a project" +seoTitle: "Archive a project (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: archive a project. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/03-compression-and-checksums.md b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/03-compression-and-checksums.md index ff7c835..018abe5 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/03-compression-and-checksums.md +++ b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/03-compression-and-checksums.md @@ -1,5 +1,7 @@ --- title: Compression and checksums +seoTitle: "gzip vs bzip2 vs xz, zip and sha256sum" +description: "Compress with gzip, bzip2, xz and zip, and verify files with sha256sum checksums. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/04-exercise-checksums.md b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/04-exercise-checksums.md index 242d193..500c6b7 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/04-exercise-checksums.md +++ b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/04-exercise-checksums.md @@ -1,5 +1,7 @@ --- title: "Exercise: Compress and verify" +seoTitle: "Compress and verify (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: compress and verify. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/05-backups.md b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/05-backups.md index 4e4c2d1..4a338e4 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/05-backups.md +++ b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/05-backups.md @@ -1,5 +1,7 @@ --- title: Backups that restore properly +seoTitle: "Linux Backups With tar: ACLs and Incrementals" +description: "Back up with tar keeping ACLs and SELinux labels, incremental backups and tested restores. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/06-exercise-backups.md b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/06-exercise-backups.md index 99ae0a4..1940b13 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/06-exercise-backups.md +++ b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/06-exercise-backups.md @@ -1,5 +1,7 @@ --- title: "Exercise: Back up with ACLs, then restore" +seoTitle: "Back up with ACLs, then restore (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: back up with ACLs, then restore. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/07-moving-data.md b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/07-moving-data.md index 6809d4d..24e20e2 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/07-moving-data.md +++ b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/07-moving-data.md @@ -1,5 +1,7 @@ --- title: Moving data between machines safely +seoTitle: "rsync and scp: Copy Files Between Linux Servers" +description: "Move directory trees between servers safely with rsync, tar over SSH and checksums. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/08-exercise-moving.md b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/08-exercise-moving.md index f13bc09..ac77a14 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/08-exercise-moving.md +++ b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/08-exercise-moving.md @@ -1,5 +1,7 @@ --- title: "Exercise: Move a tree between servers" +seoTitle: "Move a tree between servers (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: move a tree between servers. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/09-lab.md index d0c8612..ec24623 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Archives and transfer review" +seoTitle: "tar and rsync Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on tar and rsync: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 35 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/10-quiz.md index 1e1060e..936568c 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "tar and rsync quiz" +seoTitle: "tar and rsync Quiz: RHCSA Practice Questions" +description: "Test yourself on tar and rsync with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/11-summary.md index c0cb895..188bf2f 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "tar and rsync cheat sheet" +seoTitle: "tar and rsync Cheat Sheet (RHCSA)" +description: "tar and rsync cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/_chapter.yml index ca10aa5..23d8e72 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch14-archives-and-transfer/_chapter.yml @@ -1,4 +1,6 @@ title: Archives and file transfer +seoTitle: "tar, Compression, Backups and rsync (RHCSA)" +seoDescription: "Create and extract tar archives, compress with gzip, bzip2 and xz, verify checksums, back up with ACLs and copy data safely with rsync." goal: Bundle and compress data with tar, prove it with checksums, make backups that restore with their metadata, and move data between hosts safely. objectives: - Create, list and extract tar archives and choose the compression. diff --git a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/01-first-scripts.md b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/01-first-scripts.md index c9496da..fe8f324 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/01-first-scripts.md +++ b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/01-first-scripts.md @@ -1,5 +1,7 @@ --- title: Your first shell scripts +seoTitle: "Bash Scripting for Beginners: Your First Script" +description: "Write and run Bash scripts with the shebang, arguments, variables and exit statuses. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/02-exercise-first-scripts.md b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/02-exercise-first-scripts.md index c8e7ee9..f51d573 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/02-exercise-first-scripts.md +++ b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/02-exercise-first-scripts.md @@ -1,5 +1,7 @@ --- title: "Exercise: Write and run your first scripts" +seoTitle: "Write and run your first scripts (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: write and run your first scripts. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/03-conditions-and-loops.md b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/03-conditions-and-loops.md index 1568f8f..13d3334 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/03-conditions-and-loops.md +++ b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/03-conditions-and-loops.md @@ -1,5 +1,7 @@ --- title: Decisions and loops +seoTitle: "Bash if, case, for and while Loops Explained" +description: "Make Bash scripts decide and repeat with if, test, case, for and while loops. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/04-exercise-conditions.md b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/04-exercise-conditions.md index f3fbc65..b547b10 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/04-exercise-conditions.md +++ b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/04-exercise-conditions.md @@ -1,5 +1,7 @@ --- title: "Exercise: Scripts that decide and repeat" +seoTitle: "Scripts that decide and repeat (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: scripts that decide and repeat. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/05-cron.md b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/05-cron.md index aae5858..76e4f9c 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/05-cron.md +++ b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/05-cron.md @@ -1,5 +1,7 @@ --- title: Scheduling jobs with cron +seoTitle: "crontab Tutorial: Schedule Jobs With cron" +description: "Schedule recurring jobs with crontab and /etc/cron.d, read the time fields and avoid the percent trap. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/06-exercise-cron.md b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/06-exercise-cron.md index ef4ebe5..af83acf 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/06-exercise-cron.md +++ b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/06-exercise-cron.md @@ -1,5 +1,7 @@ --- title: "Exercise: Schedule a job" +seoTitle: "Schedule a job (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: schedule a job. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/07-timers-and-at.md b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/07-timers-and-at.md index bf1cdd2..3bac315 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/07-timers-and-at.md +++ b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/07-timers-and-at.md @@ -1,5 +1,7 @@ --- title: systemd timers and one-off jobs +seoTitle: "systemd Timers vs cron, and the at Command" +description: "Run jobs with systemd timers and OnCalendar, and schedule one-off jobs with at. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/08-exercise-timers.md b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/08-exercise-timers.md index fe55063..f625707 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/08-exercise-timers.md +++ b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/08-exercise-timers.md @@ -1,5 +1,7 @@ --- title: "Exercise: Timers and one-off jobs" +seoTitle: "Timers and one-off jobs (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: timers and one-off jobs. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/09-lab.md index f526983..e9b1221 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Scripts and scheduling review" +seoTitle: "Bash scripts and scheduling Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on Bash scripts and scheduling: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 40 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/10-quiz.md index 7384627..0ed2b3e 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Bash scripts and scheduling quiz" +seoTitle: "Bash scripts and scheduling Quiz: RHCSA Practice Questions" +description: "Test yourself on Bash scripts and scheduling with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/11-summary.md index f44f5c2..d088860 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Bash scripts and scheduling cheat sheet" +seoTitle: "Bash scripts and scheduling Cheat Sheet (RHCSA)" +description: "Bash scripts and scheduling cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/_chapter.yml index 302ff43..0cc033b 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch15-scripts-and-scheduling/_chapter.yml @@ -1,4 +1,6 @@ title: Scripts and scheduling +seoTitle: "Bash Scripting, cron and systemd Timers (RHCSA)" +seoDescription: "Write Bash scripts with arguments, conditions and loops, and schedule jobs with cron, systemd timers and at. RHCSA (EX200) chapter 15." goal: Write shell scripts with arguments, tests and loops, and schedule them with cron, systemd timers and at. objectives: - Write and run a bash script, with variables, arguments and exit statuses. diff --git a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/01-selinux-concepts.md b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/01-selinux-concepts.md index ee99566..cc75e95 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/01-selinux-concepts.md +++ b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/01-selinux-concepts.md @@ -1,5 +1,7 @@ --- title: What SELinux does +seoTitle: "SELinux Explained: Modes, Contexts and Policy" +description: "What SELinux does, enforcing and permissive modes, labels and contexts on RHEL 9. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/02-exercise-contexts.md b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/02-exercise-contexts.md index 7aa68b6..2a80e2e 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/02-exercise-contexts.md +++ b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/02-exercise-contexts.md @@ -1,5 +1,7 @@ --- title: "Exercise: Read the labels" +seoTitle: "Read the labels (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: read the labels. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/03-file-contexts.md b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/03-file-contexts.md index f2d5064..9a50725 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/03-file-contexts.md +++ b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/03-file-contexts.md @@ -1,5 +1,7 @@ --- title: "File contexts: rules, restorecon and chcon" +seoTitle: "semanage fcontext, restorecon and chcon Explained" +description: "Fix SELinux file labels permanently with semanage fcontext and restorecon, and why chcon is temporary. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/04-exercise-fix-labels.md b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/04-exercise-fix-labels.md index 1d931ef..0d8bb9b 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/04-exercise-fix-labels.md +++ b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/04-exercise-fix-labels.md @@ -1,5 +1,7 @@ --- title: "Exercise: Fix a 403 caused by a label" +seoTitle: "Fix a 403 caused by a label (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: fix a 403 caused by a label. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/05-booleans-and-ports.md b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/05-booleans-and-ports.md index 0e532d9..e8b1b73 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/05-booleans-and-ports.md +++ b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/05-booleans-and-ports.md @@ -1,5 +1,7 @@ --- title: Booleans and ports +seoTitle: "SELinux Booleans and semanage port Examples" +description: "Change SELinux behaviour with setsebool and allow services on new ports with semanage port. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/06-exercise-booleans-ports.md b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/06-exercise-booleans-ports.md index ca3a492..a4aede0 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/06-exercise-booleans-ports.md +++ b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/06-exercise-booleans-ports.md @@ -1,5 +1,7 @@ --- title: "Exercise: Flip a switch and label a port" +seoTitle: "Flip a switch and label a port (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: flip a switch and label a port. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/07-troubleshooting.md b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/07-troubleshooting.md index 842a508..f7a92dc 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/07-troubleshooting.md +++ b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/07-troubleshooting.md @@ -1,5 +1,7 @@ --- title: Troubleshooting SELinux denials +seoTitle: "Troubleshoot SELinux Denials: AVC, ausearch, sealert" +description: "Find and fix SELinux denials from AVC messages with ausearch and sealert, without disabling SELinux. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/08-exercise-troubleshooting.md b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/08-exercise-troubleshooting.md index 8df4e22..dbea76c 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/08-exercise-troubleshooting.md +++ b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/08-exercise-troubleshooting.md @@ -1,5 +1,7 @@ --- title: "Exercise: Two faults, one symptom" +seoTitle: "Two faults, one symptom (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: two faults, one symptom. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 35 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/09-lab.md index 42428e4..5aa4b87 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: SELinux review" +seoTitle: "SELinux Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on SELinux: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 40 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/10-quiz.md index 5633d0c..799a1a2 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "SELinux quiz" +seoTitle: "SELinux Quiz: RHCSA Practice Questions" +description: "Test yourself on SELinux with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/11-summary.md index 1129d28..639a978 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "SELinux cheat sheet" +seoTitle: "SELinux Cheat Sheet (RHCSA)" +description: "SELinux cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/_chapter.yml index 131a36d..9d9cf66 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch16-selinux/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch16-selinux/_chapter.yml @@ -1,4 +1,6 @@ title: SELinux +seoTitle: "SELinux Tutorial: Contexts, Booleans, Ports (RHCSA)" +seoDescription: "Understand SELinux on RHEL 9: modes, file contexts, restorecon, semanage fcontext, booleans, port labels and fixing denials." goal: Understand SELinux contexts and modes, fix file labels, booleans and ports the right way, and troubleshoot denials without disabling the protection. objectives: - Explain mandatory access control, read security contexts, and show and switch the SELinux mode. diff --git a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/01-disks-and-partitions.md b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/01-disks-and-partitions.md index 5ed854b..566c928 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/01-disks-and-partitions.md +++ b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/01-disks-and-partitions.md @@ -1,5 +1,7 @@ --- title: Disks and partitions +seoTitle: "parted Tutorial: Partition a Disk on Linux (GPT)" +description: "Find disks with lsblk and partition them with parted using GPT. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/02-exercise-partitions.md b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/02-exercise-partitions.md index b79489a..8a860ec 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/02-exercise-partitions.md +++ b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/02-exercise-partitions.md @@ -1,5 +1,7 @@ --- title: "Exercise: Partition a new disk" +seoTitle: "Partition a new disk (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: partition a new disk. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/03-filesystems-and-mounting.md b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/03-filesystems-and-mounting.md index 930826d..009cce2 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/03-filesystems-and-mounting.md +++ b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/03-filesystems-and-mounting.md @@ -1,5 +1,7 @@ --- title: File systems and mounting +seoTitle: "mkfs and mount: Create XFS and ext4 File Systems" +description: "Create XFS and ext4 file systems and swap, mount them and read blkid and df. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/04-exercise-filesystems.md b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/04-exercise-filesystems.md index 2e9411e..76e969b 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/04-exercise-filesystems.md +++ b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/04-exercise-filesystems.md @@ -1,5 +1,7 @@ --- title: "Exercise: Create file systems and mount them" +seoTitle: "Create file systems and mount them (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: create file systems and mount them. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/05-fstab-and-swap.md b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/05-fstab-and-swap.md index f114d1f..054ea54 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/05-fstab-and-swap.md +++ b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/05-fstab-and-swap.md @@ -1,5 +1,7 @@ --- title: Making mounts permanent with /etc/fstab +seoTitle: "/etc/fstab Explained: Permanent Mounts and Swap" +description: "Make mounts and swap permanent in /etc/fstab with UUIDs, test with mount -a and findmnt --verify. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/06-exercise-fstab.md b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/06-exercise-fstab.md index 24e8fa9..3b9d916 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/06-exercise-fstab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/06-exercise-fstab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Make the storage permanent" +seoTitle: "Make the storage permanent (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: make the storage permanent. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/07-space-and-maintenance.md b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/07-space-and-maintenance.md index c3cc668..d9b4397 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/07-space-and-maintenance.md +++ b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/07-space-and-maintenance.md @@ -1,5 +1,7 @@ --- title: When the disk is full, and keeping file systems healthy +seoTitle: "Disk Full on Linux? Find Space With du and df" +description: "Find what fills a disk with du and df, inode exhaustion, deleted open files and xfs_repair. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/08-exercise-space.md b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/08-exercise-space.md index d3b8b58..eb4537f 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/08-exercise-space.md +++ b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/08-exercise-space.md @@ -1,5 +1,7 @@ --- title: "Exercise: Hunt the missing space" +seoTitle: "Hunt the missing space (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: hunt the missing space. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/09-lab.md index c7df267..7bfca2d 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Storage review" +seoTitle: "Linux storage Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on Linux storage: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 40 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/10-quiz.md index fb9c95f..598123b 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Linux storage quiz" +seoTitle: "Linux storage Quiz: RHCSA Practice Questions" +description: "Test yourself on Linux storage with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/11-summary.md index c93b3b9..119cf33 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Linux storage cheat sheet" +seoTitle: "Linux storage Cheat Sheet (RHCSA)" +description: "Linux storage cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/_chapter.yml index c8724af..bc804e6 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch17-storage-and-file-systems/_chapter.yml @@ -1,4 +1,6 @@ title: Storage and file systems +seoTitle: "Linux Disks, Partitions, mkfs and fstab (RHCSA)" +seoDescription: "Partition disks with parted, create XFS and ext4 file systems, mount them, make mounts and swap permanent in /etc/fstab, and free space." goal: Partition disks, create and mount XFS, ext4 and swap, make them permanent with fstab, and find and fix space and busy-mount problems. objectives: - Identify disks and partitions and create a GPT table and partitions with parted. diff --git a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/01-lvm-concepts.md b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/01-lvm-concepts.md index 609fbdc..8c1e0e1 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/01-lvm-concepts.md +++ b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/01-lvm-concepts.md @@ -1,5 +1,7 @@ --- title: "Logical volumes: why and how" +seoTitle: "LVM Tutorial: pvcreate, vgcreate and lvcreate" +description: "How LVM works and how to build physical volumes, volume groups and logical volumes. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/02-exercise-build.md b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/02-exercise-build.md index 127e454..051dcbb 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/02-exercise-build.md +++ b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/02-exercise-build.md @@ -1,5 +1,7 @@ --- title: "Exercise: Build your first volume group" +seoTitle: "Build your first volume group (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: build your first volume group. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/03-growing-and-shrinking.md b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/03-growing-and-shrinking.md index e2199a1..9e6c1a0 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/03-growing-and-shrinking.md +++ b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/03-growing-and-shrinking.md @@ -1,5 +1,7 @@ --- title: "Growing and shrinking volumes" +seoTitle: "lvextend and lvreduce: Resize LVM Volumes" +description: "Extend logical volumes and their file systems online with lvextend -r, and shrink ext4 safely. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/04-exercise-resize.md b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/04-exercise-resize.md index ac1c076..367e2ee 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/04-exercise-resize.md +++ b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/04-exercise-resize.md @@ -1,5 +1,7 @@ --- title: "Exercise: Grow and shrink volumes" +seoTitle: "Grow and shrink volumes (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: grow and shrink volumes. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/05-moving-and-maintaining.md b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/05-moving-and-maintaining.md index 92c83df..84aa890 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/05-moving-and-maintaining.md +++ b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/05-moving-and-maintaining.md @@ -1,5 +1,7 @@ --- title: "Replacing disks and everyday maintenance" +seoTitle: "pvmove, vgreduce and LVM Maintenance" +description: "Replace a disk without downtime with pvmove, rename volumes and put LVM mounts in fstab. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/06-exercise-maintenance.md b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/06-exercise-maintenance.md index b83c13e..e8dfb0d 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/06-exercise-maintenance.md +++ b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/06-exercise-maintenance.md @@ -1,5 +1,7 @@ --- title: "Exercise: Move data to a new disk" +seoTitle: "Move data to a new disk (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: move data to a new disk. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/07-troubleshooting.md b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/07-troubleshooting.md index 4b59f04..9709619 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/07-troubleshooting.md +++ b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/07-troubleshooting.md @@ -1,5 +1,7 @@ --- title: "When LVM does not behave" +seoTitle: "LVM Troubleshooting: Inactive and Missing Volumes" +description: "Fix common LVM problems: inactive volumes, full volume groups, busy devices and missing disks. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/08-exercise-troubleshooting.md b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/08-exercise-troubleshooting.md index 4f67e7a..e52afae 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/08-exercise-troubleshooting.md +++ b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/08-exercise-troubleshooting.md @@ -1,5 +1,7 @@ --- title: "Exercise: Fix three LVM problems" +seoTitle: "Fix three LVM problems (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: fix three LVM problems. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/09-lab.md index 950e521..f3a02ec 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: LVM review" +seoTitle: "LVM Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on LVM: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 40 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/10-quiz.md index b31a2d9..90e98ca 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "LVM quiz" +seoTitle: "LVM Quiz: RHCSA Practice Questions" +description: "Test yourself on LVM with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/11-summary.md index 3276ed4..1ceda2f 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "LVM cheat sheet" +seoTitle: "LVM Cheat Sheet (RHCSA)" +description: "LVM cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/_chapter.yml index 2c8778a..ec2f95b 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch18-lvm/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch18-lvm/_chapter.yml @@ -1,4 +1,6 @@ title: Logical volume management +seoTitle: "LVM Tutorial: Create, Extend and Shrink Volumes (RHCSA)" +seoDescription: "Build LVM volume groups and logical volumes, extend them online with lvextend -r, shrink ext4, replace disks with pvmove and fix problems." goal: Build storage with LVM, grow and shrink volumes online, replace disks without downtime, and diagnose common LVM problems. objectives: - Describe physical volumes, volume groups and logical volumes, and create and inspect them. diff --git a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/01-nfs-basics.md b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/01-nfs-basics.md index a8118a4..188235b 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/01-nfs-basics.md +++ b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/01-nfs-basics.md @@ -1,5 +1,7 @@ --- title: Sharing directories with NFS +seoTitle: "NFS Server and Client Setup on RHEL 9" +description: "Export a directory with /etc/exports, open the firewall and mount it from a client. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/02-exercise-share.md b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/02-exercise-share.md index 59b9e81..a164265 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/02-exercise-share.md +++ b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/02-exercise-share.md @@ -1,5 +1,7 @@ --- title: "Exercise: Export and mount a directory" +seoTitle: "Export and mount a directory (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: export and mount a directory. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/03-access-and-permissions.md b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/03-access-and-permissions.md index 2bd5f73..734514e 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/03-access-and-permissions.md +++ b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/03-access-and-permissions.md @@ -1,5 +1,7 @@ --- title: Who may do what over NFS +seoTitle: "NFS Permissions, UIDs and root_squash Explained" +description: "Why NFS access depends on UIDs, what root_squash does and how to fix permission problems. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/04-exercise-permissions.md b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/04-exercise-permissions.md index 929bfa1..7176f5b 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/04-exercise-permissions.md +++ b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/04-exercise-permissions.md @@ -1,5 +1,7 @@ --- title: "Exercise: Get the permissions right" +seoTitle: "Get the permissions right (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: get the permissions right. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 35 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/05-persistent-mounts-and-autofs.md b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/05-persistent-mounts-and-autofs.md index 4525d21..6380a42 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/05-persistent-mounts-and-autofs.md +++ b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/05-persistent-mounts-and-autofs.md @@ -1,5 +1,7 @@ --- title: Permanent NFS mounts and autofs +seoTitle: "NFS in /etc/fstab and autofs Setup" +description: "Mount NFS at boot with fstab and _netdev, or on demand with autofs master maps. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/06-exercise-persistent.md b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/06-exercise-persistent.md index d202828..c8b2e67 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/06-exercise-persistent.md +++ b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/06-exercise-persistent.md @@ -1,5 +1,7 @@ --- title: "Exercise: Mount at boot, then on demand" +seoTitle: "Mount at boot, then on demand (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: mount at boot, then on demand. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/07-autofs-maps.md b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/07-autofs-maps.md index ef7f5bc..947720e 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/07-autofs-maps.md +++ b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/07-autofs-maps.md @@ -1,5 +1,7 @@ --- title: "More autofs maps: wildcards and direct maps" +seoTitle: "autofs Wildcard and Direct Maps Explained" +description: "Serve home directories with autofs wildcard maps and mount fixed paths with direct maps. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/08-exercise-maps.md b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/08-exercise-maps.md index 8f6d4ba..9292978 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/08-exercise-maps.md +++ b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/08-exercise-maps.md @@ -1,5 +1,7 @@ --- title: "Exercise: Serve home directories on demand" +seoTitle: "Serve home directories on demand (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: serve home directories on demand. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/09-lab.md index 7e16a9a..73c79ab 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: NFS and autofs review" +seoTitle: "NFS and autofs Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on NFS and autofs: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 40 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/10-quiz.md index 7cefd00..a55f72a 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "NFS and autofs quiz" +seoTitle: "NFS and autofs Quiz: RHCSA Practice Questions" +description: "Test yourself on NFS and autofs with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/11-summary.md index 84667b4..6c82b3f 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "NFS and autofs cheat sheet" +seoTitle: "NFS and autofs Cheat Sheet (RHCSA)" +description: "NFS and autofs cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/_chapter.yml index a880239..f54c0cd 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch19-nfs-and-autofs/_chapter.yml @@ -1,4 +1,6 @@ title: Network file systems and autofs +seoTitle: "NFS and autofs on RHEL 9 (RHCSA)" +seoDescription: "Export directories with NFS, mount them on clients, make mounts permanent and mount on demand with autofs, including wildcard maps." goal: Share a directory from one server, mount it on another with the right access, make the mount permanent or on-demand with autofs, and diagnose the usual failures. objectives: - Export a directory with NFS, open the firewall and mount it from a client. diff --git a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/01-zones-and-services.md b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/01-zones-and-services.md index 8708f2f..cf1ddc9 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/01-zones-and-services.md +++ b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/01-zones-and-services.md @@ -1,5 +1,7 @@ --- title: Zones and services +seoTitle: "firewalld Zones and Services Explained" +description: "How firewalld zones and services work and how to allow a service with firewall-cmd. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/02-exercise-web.md b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/02-exercise-web.md index 104a2c0..3cbf4c7 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/02-exercise-web.md +++ b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/02-exercise-web.md @@ -1,5 +1,7 @@ --- title: "Exercise: Publish a web server through the firewall" +seoTitle: "Publish a web server through the firewall (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: publish a web server through the firewall. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/03-runtime-and-permanent.md b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/03-runtime-and-permanent.md index 9d046d3..b450a5b 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/03-runtime-and-permanent.md +++ b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/03-runtime-and-permanent.md @@ -1,5 +1,7 @@ --- title: Runtime and permanent rules +seoTitle: "firewall-cmd --permanent vs Runtime Rules" +description: "Runtime and permanent firewalld rules, --reload, --timeout and the runtime-to-permanent trap. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/04-exercise-stores.md b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/04-exercise-stores.md index 30582ec..e851b9c 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/04-exercise-stores.md +++ b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/04-exercise-stores.md @@ -1,5 +1,7 @@ --- title: "Exercise: Runtime, permanent and temporary rules" +seoTitle: "Runtime, permanent and temporary rules (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: runtime, permanent and temporary rules. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/05-sources-and-special-rules.md b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/05-sources-and-special-rules.md index c5e882f..a756131 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/05-sources-and-special-rules.md +++ b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/05-sources-and-special-rules.md @@ -1,5 +1,7 @@ --- title: Sources, forwarding and special rules +seoTitle: "firewalld Rich Rules, Sources and Port Forwarding" +description: "Limit a service to one host with source zones, forward ports, define services and write rich rules. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/06-exercise-special.md b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/06-exercise-special.md index 15e0846..4a0156d 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/06-exercise-special.md +++ b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/06-exercise-special.md @@ -1,5 +1,7 @@ --- title: "Exercise: One trusted host, a custom port and a forward" +seoTitle: "One trusted host, a custom port and a forward (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: one trusted host, a custom port and a forward. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 35 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/07-diagnosis.md b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/07-diagnosis.md index 3182b94..bee2a0b 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/07-diagnosis.md +++ b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/07-diagnosis.md @@ -1,5 +1,7 @@ --- title: Diagnosing connection problems +seoTitle: "Connection Refused vs No Route to Host: Firewall Debugging" +description: "Diagnose blocked connections layer by layer: service, listening port, firewall and SELinux. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/08-exercise-diagnosis.md b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/08-exercise-diagnosis.md index 4b68c83..fda5ade 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/08-exercise-diagnosis.md +++ b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/08-exercise-diagnosis.md @@ -1,5 +1,7 @@ --- title: "Exercise: Find four faults" +seoTitle: "Find four faults (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: find four faults. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/09-lab.md index e6c3e43..4fa6ad2 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Firewall review" +seoTitle: "firewalld Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on firewalld: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 40 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/10-quiz.md index f1bf615..b86c8fd 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "firewalld quiz" +seoTitle: "firewalld Quiz: RHCSA Practice Questions" +description: "Test yourself on firewalld with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/11-summary.md index 09e34cd..34cb249 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "firewalld cheat sheet" +seoTitle: "firewalld Cheat Sheet (RHCSA)" +description: "firewalld cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/_chapter.yml index 1573e5a..06328cf 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch20-firewalld/_chapter.yml @@ -1,4 +1,6 @@ title: The firewall +seoTitle: "firewalld and firewall-cmd Tutorial (RHCSA)" +seoDescription: "Control traffic with firewalld: zones, services, ports, runtime and permanent rules, source zones, port forwarding and rich rules." goal: Control which network traffic reaches a machine with firewalld, change rules so they survive a reload and a reboot, limit services to chosen hosts, and find out why a connection fails. objectives: - Read the active zone and allow services and ports in it. diff --git a/content/programs/rhel9-sysadmin/chapters/ch21-containers/01-images-and-containers.md b/content/programs/rhel9-sysadmin/chapters/ch21-containers/01-images-and-containers.md index 3855378..4e5bba7 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch21-containers/01-images-and-containers.md +++ b/content/programs/rhel9-sysadmin/chapters/ch21-containers/01-images-and-containers.md @@ -1,5 +1,7 @@ --- title: Images and containers +seoTitle: "Podman Tutorial: Run and Manage Containers" +description: "Pull images and run, inspect, stop and remove rootless containers with Podman on RHEL 9. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch21-containers/02-exercise-run.md b/content/programs/rhel9-sysadmin/chapters/ch21-containers/02-exercise-run.md index ac19eb3..bf4204b 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch21-containers/02-exercise-run.md +++ b/content/programs/rhel9-sysadmin/chapters/ch21-containers/02-exercise-run.md @@ -1,5 +1,7 @@ --- title: "Exercise: Run and manage containers" +seoTitle: "Run and manage containers (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: run and manage containers. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 25 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch21-containers/03-ports-and-storage.md b/content/programs/rhel9-sysadmin/chapters/ch21-containers/03-ports-and-storage.md index a660068..9e22c80 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch21-containers/03-ports-and-storage.md +++ b/content/programs/rhel9-sysadmin/chapters/ch21-containers/03-ports-and-storage.md @@ -1,5 +1,7 @@ --- title: Ports, settings and storage +seoTitle: "Podman Ports, Volumes and :Z SELinux Labels" +description: "Publish container ports, pass settings, keep data in volumes and bind mounts with the :Z label. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch21-containers/04-exercise-storage.md b/content/programs/rhel9-sysadmin/chapters/ch21-containers/04-exercise-storage.md index 4ae9f74..c9b5968 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch21-containers/04-exercise-storage.md +++ b/content/programs/rhel9-sysadmin/chapters/ch21-containers/04-exercise-storage.md @@ -1,5 +1,7 @@ --- title: "Exercise: Ports, mounts and volumes" +seoTitle: "Ports, mounts and volumes (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: ports, mounts and volumes. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch21-containers/05-building-images.md b/content/programs/rhel9-sysadmin/chapters/ch21-containers/05-building-images.md index 980437a..503abeb 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch21-containers/05-building-images.md +++ b/content/programs/rhel9-sysadmin/chapters/ch21-containers/05-building-images.md @@ -1,5 +1,7 @@ --- title: Building your own image +seoTitle: "Build a Container Image With a Containerfile" +description: "Write a Containerfile and build, tag and version your own images with podman build. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch21-containers/06-exercise-build.md b/content/programs/rhel9-sysadmin/chapters/ch21-containers/06-exercise-build.md index 2fdf2c2..2abd87e 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch21-containers/06-exercise-build.md +++ b/content/programs/rhel9-sysadmin/chapters/ch21-containers/06-exercise-build.md @@ -1,5 +1,7 @@ --- title: "Exercise: Build and version an image" +seoTitle: "Build and version an image (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: build and version an image. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 30 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch21-containers/07-services-with-quadlet.md b/content/programs/rhel9-sysadmin/chapters/ch21-containers/07-services-with-quadlet.md index 59be972..234dd6c 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch21-containers/07-services-with-quadlet.md +++ b/content/programs/rhel9-sysadmin/chapters/ch21-containers/07-services-with-quadlet.md @@ -1,5 +1,7 @@ --- title: Containers as services with Quadlet +seoTitle: "Podman Quadlet: Run a Container as a systemd Service" +description: "Run containers as user services with Quadlet, restart policies and loginctl enable-linger. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 20 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch21-containers/08-exercise-service.md b/content/programs/rhel9-sysadmin/chapters/ch21-containers/08-exercise-service.md index 5ba215d..322b97f 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch21-containers/08-exercise-service.md +++ b/content/programs/rhel9-sysadmin/chapters/ch21-containers/08-exercise-service.md @@ -1,5 +1,7 @@ --- title: "Exercise: Run a container as a service" +seoTitle: "Run a container as a service (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: run a container as a service. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 40 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch21-containers/09-lab.md b/content/programs/rhel9-sysadmin/chapters/ch21-containers/09-lab.md index 82e7716..4f1edcc 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch21-containers/09-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch21-containers/09-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Containers review" +seoTitle: "Podman containers Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on Podman containers: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 45 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch21-containers/10-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch21-containers/10-quiz.md index 2ba56dc..33d3988 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch21-containers/10-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch21-containers/10-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Podman containers quiz" +seoTitle: "Podman containers Quiz: RHCSA Practice Questions" +description: "Test yourself on Podman containers with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch21-containers/11-summary.md b/content/programs/rhel9-sysadmin/chapters/ch21-containers/11-summary.md index 2793d93..c6fe257 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch21-containers/11-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch21-containers/11-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Podman containers cheat sheet" +seoTitle: "Podman containers Cheat Sheet (RHCSA)" +description: "Podman containers cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch21-containers/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch21-containers/_chapter.yml index f7e4410..603e8f8 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch21-containers/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch21-containers/_chapter.yml @@ -1,4 +1,6 @@ title: Containers with Podman +seoTitle: "Podman Containers and Quadlet on RHEL 9 (RHCSA)" +seoDescription: "Run rootless containers with Podman, publish ports, use volumes with SELinux labels, build images and run containers as systemd services." goal: Run containers as an ordinary user, publish ports and keep data safely, build your own image, and run a container as a systemd service that survives a reboot. objectives: - Pull images by full name and run, inspect, stop and remove containers. diff --git a/content/programs/rhel9-sysadmin/chapters/ch22-review/01-requirements-to-evidence.md b/content/programs/rhel9-sysadmin/chapters/ch22-review/01-requirements-to-evidence.md index b115ffb..66f76fe 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch22-review/01-requirements-to-evidence.md +++ b/content/programs/rhel9-sysadmin/chapters/ch22-review/01-requirements-to-evidence.md @@ -1,5 +1,7 @@ --- title: From requirements to evidence +seoTitle: "Deliver a Linux Service From Requirements (RHCSA Review)" +description: "Turn requirements into evidence and build a web service layer by layer, as in an exam task. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch22-review/02-exercise-portal.md b/content/programs/rhel9-sysadmin/chapters/ch22-review/02-exercise-portal.md index 74cebaa..7acfa13 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch22-review/02-exercise-portal.md +++ b/content/programs/rhel9-sysadmin/chapters/ch22-review/02-exercise-portal.md @@ -1,5 +1,7 @@ --- title: "Exercise: Deliver the portal" +seoTitle: "Deliver the portal (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: deliver the portal. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 50 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch22-review/03-diagnosing-faults.md b/content/programs/rhel9-sysadmin/chapters/ch22-review/03-diagnosing-faults.md index f2503b9..a138b17 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch22-review/03-diagnosing-faults.md +++ b/content/programs/rhel9-sysadmin/chapters/ch22-review/03-diagnosing-faults.md @@ -1,5 +1,7 @@ --- title: Diagnosing faults +seoTitle: "Linux Troubleshooting Method: Symptoms to Fixes" +description: "Diagnose faults from the symptom: refused, no route, timeout, 403 or a service that will not start. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch22-review/04-exercise-faults.md b/content/programs/rhel9-sysadmin/chapters/ch22-review/04-exercise-faults.md index bd73dfe..f4a8410 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch22-review/04-exercise-faults.md +++ b/content/programs/rhel9-sysadmin/chapters/ch22-review/04-exercise-faults.md @@ -1,5 +1,7 @@ --- title: "Exercise: Find six faults" +seoTitle: "Find six faults (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: find six faults. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 45 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch22-review/05-recovery-and-handover.md b/content/programs/rhel9-sysadmin/chapters/ch22-review/05-recovery-and-handover.md index a446dc3..80cdad7 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch22-review/05-recovery-and-handover.md +++ b/content/programs/rhel9-sysadmin/chapters/ch22-review/05-recovery-and-handover.md @@ -1,5 +1,7 @@ --- title: Recovery and handover +seoTitle: "Linux Backup Restore and Handover Checklist" +description: "Restore data with ACLs and labels intact, prove it after a reboot and write a handover note. Free RHCSA (EX200) lesson with diagrams and practice." kind: lesson minutes: 15 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch22-review/06-exercise-recovery.md b/content/programs/rhel9-sysadmin/chapters/ch22-review/06-exercise-recovery.md index 41f5409..ae44235 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch22-review/06-exercise-recovery.md +++ b/content/programs/rhel9-sysadmin/chapters/ch22-review/06-exercise-recovery.md @@ -1,5 +1,7 @@ --- title: "Exercise: Restore and hand over" +seoTitle: "Restore and hand over (RHCSA Practice Exercise)" +description: "Hands-on RHCSA practice: restore and hand over. Step-by-step tasks with full solutions, on a practice lab you build yourself." kind: lab minutes: 35 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch22-review/07-lab.md b/content/programs/rhel9-sysadmin/chapters/ch22-review/07-lab.md index d232e9c..f62e572 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch22-review/07-lab.md +++ b/content/programs/rhel9-sysadmin/chapters/ch22-review/07-lab.md @@ -1,5 +1,7 @@ --- title: "Exercise: Capstone review" +seoTitle: "Linux administration final review Practice Lab (RHCSA Exam Style)" +description: "Graded RHCSA exam-style lab on Linux administration final review: a challenge with requirements, hints and solutions, and a grader that checks your work on your own lab." kind: lab minutes: 60 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch22-review/08-quiz.md b/content/programs/rhel9-sysadmin/chapters/ch22-review/08-quiz.md index 43ba8f0..d0a6812 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch22-review/08-quiz.md +++ b/content/programs/rhel9-sysadmin/chapters/ch22-review/08-quiz.md @@ -1,5 +1,7 @@ --- -title: Knowledge check +title: "Linux administration final review quiz" +seoTitle: "Linux administration final review Quiz: RHCSA Practice Questions" +description: "Test yourself on Linux administration final review with RHCSA practice questions. Every answer explains why it is right or wrong. Free and no sign-up." kind: quiz minutes: 10 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch22-review/09-summary.md b/content/programs/rhel9-sysadmin/chapters/ch22-review/09-summary.md index a1b93a1..077c0a0 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch22-review/09-summary.md +++ b/content/programs/rhel9-sysadmin/chapters/ch22-review/09-summary.md @@ -1,5 +1,7 @@ --- -title: Summary and cheat sheet +title: "Linux administration final review cheat sheet" +seoTitle: "Linux administration final review Cheat Sheet (RHCSA)" +description: "Linux administration final review cheat sheet: the key commands and ideas on one page, with flashcards for revision. Free RHCSA study notes." kind: summary minutes: 5 --- diff --git a/content/programs/rhel9-sysadmin/chapters/ch22-review/10-rhcsa-exam-objectives.md b/content/programs/rhel9-sysadmin/chapters/ch22-review/10-rhcsa-exam-objectives.md new file mode 100644 index 0000000..a3f4516 --- /dev/null +++ b/content/programs/rhel9-sysadmin/chapters/ch22-review/10-rhcsa-exam-objectives.md @@ -0,0 +1,84 @@ +--- +title: "RHCSA (EX200) exam objectives: a study map" +seoTitle: "RHCSA EX200 Exam Objectives: Free Study Map for RHEL 9" +description: "Every RHCSA (EX200) objective area for RHEL 9 mapped to free lessons, exercises and labs. Use it as your RHCSA study checklist and practice plan." +kind: lesson +minutes: 10 +--- + +{% lead %} +The RHCSA exam (EX200) is a hands-on test: you get real systems and a list of tasks, and the result is checked on the systems themselves. This page lists the objective areas Red Hat publishes for the exam on RHEL 9, in our own words, and links each one to the lessons and exercises of this course that teach it. Use it as a checklist: when you can do every line on your practice lab without notes, you are ready. +{% /lead %} + +{% callout type="note" title="Check the official list" %} +Red Hat publishes and occasionally updates the objectives on the [EX200 exam page](https://www.redhat.com/en/services/training/ex200-red-hat-certified-system-administrator-rhcsa-exam). This study map follows that list but is not an official document, and it makes no claim about what any particular exam contains. +{% /callout %} + +## Understand and use essential tools + +- Use the shell, write commands correctly, and get help from man pages, `--help` and `/usr/share/doc`: [the shell](#/ch02/linux-and-the-shell), [running commands](#/ch02/running-commands), [man pages](#/ch04/manual-pages), [finding commands](#/ch04/searching-for-help). +- Redirect input and output, and use pipes: [redirection and pipes](#/ch05/redirection-and-pipes). +- Search text with `grep` and regular expressions: [grep](#/ch05/grep). +- Log in to remote systems with SSH and switch users with `su` and `sudo`: [SSH basics](#/ch10/ssh-basics), [becoming root](#/ch06/superuser). +- Archive and compress files with `tar`, `gzip` and `bzip2`: [tar](#/ch14/tar), [compression](#/ch14/compression-and-checksums). +- Create and edit text files: [vim](#/ch05/vim). +- Create, delete, copy and move files and directories, and create hard and symbolic links: [managing files](#/ch03/manage-files), [links](#/ch03/links). +- Read and set standard permissions: [reading permissions](#/ch07/reading-permissions), [changing permissions](#/ch07/changing-permissions). + +## Create simple shell scripts + +- Run commands conditionally and in loops, process arguments, and use the output of commands: [first scripts](#/ch15/first-scripts), [conditions and loops](#/ch15/conditions-and-loops). + +## Operate running systems + +- Boot, reboot and shut down; boot into a different target; interrupt the boot to recover access: [targets and boot](#/ch09/targets-and-boot), [recovery](#/ch09/recovery). +- Find CPU- and memory-hungry processes, end them and adjust their priority; manage tuning profiles: [processes](#/ch08/processes), [signals](#/ch08/signals), [monitoring and tuned](#/ch08/monitoring). +- Find and read logs and journals, and keep the journal across reboots: [reading logs](#/ch11/reading-logs), [persistence and rotation](#/ch11/persistence-and-rotation). +- Start, stop and check services: [systemd services](#/ch09/services). +- Transfer files securely between systems: [scp, sftp and rsync](#/ch10/transfer-and-config), [moving data](#/ch14/moving-data). + +## Configure local storage + +- Create and delete partitions on GPT disks: [disks and partitions](#/ch17/disks-and-partitions). +- Create and remove physical volumes, volume groups and logical volumes: [LVM concepts](#/ch18/lvm-concepts), [LVM maintenance](#/ch18/moving-and-maintaining). +- Mount file systems at boot by UUID or label, and add partitions, logical volumes and swap without losing data: [/etc/fstab and swap](#/ch17/fstab-and-swap). + +## Create and configure file systems + +- Create, mount and use XFS, ext4 and vfat file systems: [file systems and mounting](#/ch17/filesystems-and-mounting). +- Mount network file systems with NFS, and on demand with autofs: [NFS](#/ch19/nfs-basics), [persistent mounts and autofs](#/ch19/persistent-mounts-and-autofs), [autofs maps](#/ch19/autofs-maps). +- Extend logical volumes: [growing and shrinking](#/ch18/growing-and-shrinking). +- Diagnose and fix permission problems: [defaults and shared directories](#/ch07/defaults-and-special), [ACLs](#/ch07/acls), [NFS access](#/ch19/access-and-permissions). + +## Deploy, configure and maintain systems + +- Schedule tasks with `at`, `cron` and systemd timers: [cron](#/ch15/cron), [timers and at](#/ch15/timers-and-at). +- Start and stop services, and set them to start at boot; set the default boot target: [systemd services](#/ch09/services), [targets and boot](#/ch09/targets-and-boot). +- Configure time services: [time and chrony](#/ch11/time). +- Install and update packages from repositories, and configure repositories: [dnf](#/ch13/dnf), [repositories](#/ch13/repositories), [modules and updates](#/ch13/modules-and-updates). +- Change the boot loader and kernel arguments: [targets and boot](#/ch09/targets-and-boot). + +## Manage basic networking + +- Configure IPv4 and IPv6 addresses, host name resolution and network services that start at boot: [network basics](#/ch12/network-basics), [nmcli](#/ch12/networkmanager), [names and DNS](#/ch12/names-and-dns). +- Restrict network access with `firewall-cmd`: [zones and services](#/ch20/zones-and-services), [runtime and permanent rules](#/ch20/runtime-and-permanent), [special rules](#/ch20/sources-and-special-rules). + +## Manage users and groups + +- Create, delete and change local users and groups, and set passwords and password ageing: [users and groups](#/ch06/users-and-groups), [accounts](#/ch06/accounts-and-groups), [passwords](#/ch06/passwords). +- Configure superuser access: [sudo](#/ch06/superuser). + +## Manage security + +- Configure firewall settings: [firewalld](#/ch20/zones-and-services). +- Set default file permissions and special permissions: [defaults and special permissions](#/ch07/defaults-and-special). +- Configure key-based SSH authentication: [SSH keys](#/ch10/keys), [hardening sshd](#/ch10/hardening). +- Set SELinux modes, read and restore file contexts, manage port labels and booleans, and diagnose routine denials: [SELinux concepts](#/ch16/selinux-concepts), [file contexts](#/ch16/file-contexts), [booleans and ports](#/ch16/booleans-and-ports), [troubleshooting](#/ch16/troubleshooting). + +## Manage containers + +If the current objectives include containers, these lessons cover finding and running images, persistent storage and running containers as services: [images and containers](#/ch21/images-and-containers), [ports and storage](#/ch21/ports-and-storage), [building images](#/ch21/building-images), [Quadlet services](#/ch21/services-with-quadlet). + +## Practise like the exam + +Each chapter ends with a graded lab that states only the requirements, like an exam task, and the [capstone lab](#/ch22/lab) combines many areas on one system. Work through them on your [practice lab](#/ch01/overview), reset it, and repeat them without the lessons open. diff --git a/content/programs/rhel9-sysadmin/chapters/ch22-review/_chapter.yml b/content/programs/rhel9-sysadmin/chapters/ch22-review/_chapter.yml index a7d6058..689e8d4 100644 --- a/content/programs/rhel9-sysadmin/chapters/ch22-review/_chapter.yml +++ b/content/programs/rhel9-sysadmin/chapters/ch22-review/_chapter.yml @@ -1,4 +1,6 @@ title: Review and practice +seoTitle: "RHCSA Practice Exam: Capstone Labs and Review" +seoDescription: "Pull every RHCSA skill together: deliver a service, diagnose faults methodically, restore from backup and prove it all after a reboot." goal: Deliver a small service the way you would in real work, with proof for every requirement, find and repair faults with one method, and leave a tested recovery and a handover note. objectives: - Turn requirements into evidence and build a service layer by layer. diff --git a/content/programs/rhel9-sysadmin/program.yml b/content/programs/rhel9-sysadmin/program.yml index e854cc5..f401840 100644 --- a/content/programs/rhel9-sysadmin/program.yml +++ b/content/programs/rhel9-sysadmin/program.yml @@ -6,7 +6,7 @@ tagline: Learn core Linux administration by doing summary: 'Build practical Linux administration skills on RHEL 9: shell and files, identity and access, services and logs, networking, software, storage, security and rootless containers. Explain each change, verify its useful result, and rehearse - recovery on a resettable practice lab.' + recovery on a resettable practice lab. Prepares you for the RHCSA (EX200) exam.' platform: family: rhel version: '9' @@ -63,9 +63,31 @@ showcase: - Networking - Containers title: Linux system administration on RHEL - label: RHEL + label: RHCSA · EX200 summary: Learn Linux administration through focused lessons, interactive models, real labs and service-recovery practice. Build a resettable lab, verify changes and leave a clear handover. lab: true labGuide: ch01/workstation +seoTitle: 'Free RHCSA Course (EX200): Linux Administration on RHEL 9' +seoDescription: 'Free RHCSA (EX200) study course for RHEL 9: 22 chapters of lessons, practice terminals, quizzes and graded labs on a home lab you build yourself.' +keywords: +- RHCSA +- EX200 +- RHCSA study guide +- RHCSA practice exam +- RHCSA labs +- RHEL 9 +- Linux system administration +- learn Linux +- Linux tutorial for beginners +- Rocky Linux +- SELinux +- LVM +- firewalld +- systemd +- Podman +certifications: +- name: Red Hat Certified System Administrator (RHCSA) + code: EX200 + url: https://www.redhat.com/en/services/training/ex200-red-hat-certified-system-administrator-rhcsa-exam diff --git a/content/site.yml b/content/site.yml index fc09a36..af7eef7 100644 --- a/content/site.yml +++ b/content/site.yml @@ -1,7 +1,7 @@ apiVersion: 1 name: Kernel Path tagline: Learn Linux and automation by doing -description: Free, open learning paths for Linux and automation. Short lessons, browser activities and real exercises on a practice lab you build yourself. +description: Free RHCSA and RHCE study courses for Linux and Ansible on RHEL 9. Short lessons, browser activities and real exercises on a practice lab you build yourself. repo: https://github.com/ayeshrodz/kernel-path programs: - rhel9-sysadmin diff --git a/content/site/home.md b/content/site/home.md index 3639467..f6e698e 100644 --- a/content/site/home.md +++ b/content/site/home.md @@ -4,19 +4,23 @@ kind: reference layout: landing minutes: 3 eyebrow: Free and open source -description: Short lessons, browser activities and real exercises on a practice lab you build yourself. Pick a program and start where you are. +seoTitle: "Free RHCSA and RHCE Courses: Learn Linux and Ansible by Doing" +description: "Free RHCSA (EX200) and RHCE (EX294) study courses: Linux administration and Ansible on RHEL 9, with lessons, quizzes and graded labs on your own lab." --- -{% hero eyebrow="Free and open source" title="Learn Linux and automation by doing" primary="rhel9-ansible" primaryLabel="Start with Ansible" secondaryLabel="See the programs" %} -Short lessons with *diagrams you can click*, activities in your browser, and real exercises on a practice lab you build on your own computer. No accounts, no cost. +{% hero eyebrow="Free RHCSA and RHCE courses" title="Learn Linux and automation by doing" primary="rhel9-sysadmin" primaryLabel="Start with Linux (RHCSA)" secondaryLabel="See the programs" %} +Free courses for the **RHCSA** and **RHCE** exams: short lessons with *diagrams you can click*, activities in your browser, and real exercises on a practice lab you build on your own computer. No accounts, no cost. {% /hero %} ## Choose your path -Each program is a complete path with its own lessons, exercises, quizzes and progress. +Two complete paths: Linux system administration for the RHCSA (EX200), then Ansible automation for the RHCE (EX294). Each has its own lessons, exercises, quizzes and progress. {% program-cards /%} +Studying for an exam? Start from the [RHCSA (EX200) objectives map](https://kernelpath.dev/rhel9-sysadmin/ch22/rhcsa-exam-objectives/) or the [RHCE (EX294) objectives map](https://kernelpath.dev/rhel9-ansible/ch11/rhce-exam-objectives/): every exam objective, linked to the lessons that teach it. + + ## See it in action Every exercise runs on your own lab, and a grader checks the result. @@ -28,5 +32,5 @@ Every exercise runs on your own lab, and a grader checks the result. {% feature-grid ref="features" /%} {% callout type="note" title="Independent and unofficial" %} -This is an independent learning project. It is not affiliated with or endorsed by any vendor. +This is an independent learning project. It is not affiliated with or endorsed by Red Hat, and the exams are not included: RHCSA and RHCE are Red Hat certifications. {% /callout %} diff --git a/docs/AUTHORING.md b/docs/AUTHORING.md index 6369249..fd39257 100644 --- a/docs/AUTHORING.md +++ b/docs/AUTHORING.md @@ -42,6 +42,7 @@ content/ ``` - **Order** comes from the numeric filename prefix (`01-`, `02-`…). +- **Search titles and descriptions:** every page has `seoTitle` (about 50-65 characters, written for what people search, for example "Linux ACLs: setfacl and getfacl With Examples") and `description` (120-160 characters). Chapters take `seoTitle` and `seoDescription` in `_chapter.yml`, programs in `program.yml` (with `keywords` and `certifications`). The build writes them into each page's HTML, and the app sets the same values as readers move between pages (`packages/engine/src/lib/seo.js`). Keep them unique across the site. - **URL slug** is the filename without its prefix: `03-configuration.md` → `/rhel9-ansible/ch03/configuration/` (links inside content leave out the program: write `#/ch03/configuration`, and the site adds the current program). Renaming a file changes its URL and resets anyone's progress for that page, so avoid renaming published sections. - **Section links** add the heading's id after a second `#`: `#/ch08/collections#where-collections-come-from`. Ids come from the heading text (lowercased, spaces to hyphens), so renaming an `##` or `###` heading breaks links people have shared to it. Every `##` and `###` heading gets a copy-link button automatically; link to another page's heading with `[text](#/ch01/page#heading-id)`. - **Frontmatter** at the top of each page: diff --git a/packages/compiler/src/index.js b/packages/compiler/src/index.js index 06186b8..ffb5690 100644 --- a/packages/compiler/src/index.js +++ b/packages/compiler/src/index.js @@ -127,6 +127,7 @@ export async function compile(contentDir, { now = new Date(), signingKey = null ...(front.minutes ? { minutes: front.minutes } : {}), ...(front.eyebrow ? { eyebrow: front.eyebrow } : {}), ...(front.description ? { description: front.description } : {}), + ...(front.seoTitle ? { seoTitle: front.seoTitle } : {}), toc, data, tree, @@ -177,6 +178,8 @@ export async function compile(contentDir, { now = new Date(), signingKey = null title: section.front.title, kind: section.kind, minutes: section.minutes, + ...(section.front.seoTitle ? { seoTitle: section.front.seoTitle } : {}), + ...(section.front.description ? { description: section.front.description } : {}), activities: activitiesOf(tree, data), }; }); @@ -186,6 +189,8 @@ export async function compile(contentDir, { now = new Date(), signingKey = null number: chapter.number, title: meta.title, ...(meta.goal ? { goal: meta.goal } : {}), + ...(meta.seoTitle ? { seoTitle: meta.seoTitle } : {}), + ...(meta.seoDescription ? { seoDescription: meta.seoDescription } : {}), objectives: meta.objectives ?? [], objectiveIds: meta.objectiveIds ?? [], ...(meta.topics ? { topics: meta.topics } : {}), diff --git a/packages/engine/index.html b/packages/engine/index.html index 3a49149..3321b46 100644 --- a/packages/engine/index.html +++ b/packages/engine/index.html @@ -5,7 +5,12 @@ Kernel Path - + + + + + + diff --git a/packages/engine/public/6107f99b31113f8e91f342f5f1a4fc3c.txt b/packages/engine/public/6107f99b31113f8e91f342f5f1a4fc3c.txt new file mode 100644 index 0000000..167cdf3 --- /dev/null +++ b/packages/engine/public/6107f99b31113f8e91f342f5f1a4fc3c.txt @@ -0,0 +1 @@ +6107f99b31113f8e91f342f5f1a4fc3c \ No newline at end of file diff --git a/packages/engine/public/apple-touch-icon.png b/packages/engine/public/apple-touch-icon.png new file mode 100644 index 0000000..da0e91e Binary files /dev/null and b/packages/engine/public/apple-touch-icon.png differ diff --git a/packages/engine/public/favicon-48.png b/packages/engine/public/favicon-48.png new file mode 100644 index 0000000..8e32a28 Binary files /dev/null and b/packages/engine/public/favicon-48.png differ diff --git a/packages/engine/public/favicon-96.png b/packages/engine/public/favicon-96.png new file mode 100644 index 0000000..70a7c1d Binary files /dev/null and b/packages/engine/public/favicon-96.png differ diff --git a/packages/engine/public/favicon.ico b/packages/engine/public/favicon.ico new file mode 100644 index 0000000..a1614eb Binary files /dev/null and b/packages/engine/public/favicon.ico differ diff --git a/packages/engine/public/favicon.svg b/packages/engine/public/favicon.svg new file mode 100644 index 0000000..66e4f9b --- /dev/null +++ b/packages/engine/public/favicon.svg @@ -0,0 +1 @@ + diff --git a/packages/engine/public/icon-192.png b/packages/engine/public/icon-192.png new file mode 100644 index 0000000..dc2ec4d Binary files /dev/null and b/packages/engine/public/icon-192.png differ diff --git a/packages/engine/public/icon-512.png b/packages/engine/public/icon-512.png new file mode 100644 index 0000000..946bbaa Binary files /dev/null and b/packages/engine/public/icon-512.png differ diff --git a/packages/engine/public/site.webmanifest b/packages/engine/public/site.webmanifest new file mode 100644 index 0000000..33d098b --- /dev/null +++ b/packages/engine/public/site.webmanifest @@ -0,0 +1,14 @@ +{ + "name": "Kernel Path", + "short_name": "Kernel Path", + "description": "Free Linux and Ansible courses for RHCSA and RHCE: short lessons, browser activities and graded exercises on a practice lab you build yourself.", + "start_url": "/", + "display": "standalone", + "background_color": "#151515", + "theme_color": "#ee0000", + "icons": [ + { "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" }, + { "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" }, + { "src": "/favicon.svg", "sizes": "any", "type": "image/svg+xml" } + ] +} diff --git a/packages/engine/public/theme-init.js b/packages/engine/public/theme-init.js index c97036c..1efe66e 100644 --- a/packages/engine/public/theme-init.js +++ b/packages/engine/public/theme-init.js @@ -5,4 +5,7 @@ } catch (e) {} var dark = pref === 'dark' || (pref === 'system' && matchMedia('(prefers-color-scheme: dark)').matches); document.documentElement.dataset.theme = dark ? 'dark' : 'light'; + // The page's text written at build time is for search engines and readers without JavaScript; with + // JavaScript the app draws the page, so the text stays hidden instead of flashing and jumping. + document.documentElement.dataset.app = 'js'; })(); diff --git a/packages/engine/src/components/content/ProgramCards.jsx b/packages/engine/src/components/content/ProgramCards.jsx index 1286d1d..9f8aee1 100644 --- a/packages/engine/src/components/content/ProgramCards.jsx +++ b/packages/engine/src/components/content/ProgramCards.jsx @@ -26,7 +26,7 @@ export default function ProgramCards() { : 'Start learning'; return (
  • - + diff --git a/packages/engine/src/components/landing/Hero.jsx b/packages/engine/src/components/landing/Hero.jsx index b4ec589..dc9bb3f 100644 --- a/packages/engine/src/components/landing/Hero.jsx +++ b/packages/engine/src/components/landing/Hero.jsx @@ -27,7 +27,7 @@ export default function Hero({ eyebrow, title, primary, primaryLabel, secondaryL
    {children}
    {target && ( - + {primaryLabel ?? 'Start learning'} )} diff --git a/packages/engine/src/components/layout/Footer.jsx b/packages/engine/src/components/layout/Footer.jsx index 95a2a63..161c053 100644 --- a/packages/engine/src/components/layout/Footer.jsx +++ b/packages/engine/src/components/layout/Footer.jsx @@ -29,7 +29,7 @@ export default defineWidget('Footer', (copy) => { {platform ? ( site.programs.map((entry) => (
  • - {entry.title} + {entry.title}
  • )) ) : ( diff --git a/packages/engine/src/components/layout/ProgramMenu.jsx b/packages/engine/src/components/layout/ProgramMenu.jsx index 4382ff2..eee439b 100644 --- a/packages/engine/src/components/layout/ProgramMenu.jsx +++ b/packages/engine/src/components/layout/ProgramMenu.jsx @@ -68,7 +68,7 @@ export default function ProgramMenu({ open, onToggle, onClose }) { return (
  • {q && ( diff --git a/packages/engine/src/lib/head.js b/packages/engine/src/lib/head.js new file mode 100644 index 0000000..6c1871a --- /dev/null +++ b/packages/engine/src/lib/head.js @@ -0,0 +1,40 @@ +// Keeps the document head in step with the page the reader (or a crawler) is on: title, description, +// canonical address and social-card tags. The build writes the same values into each page's HTML +// (scripts/prerender.mjs); this updates them as the app moves between pages. +import { canonicalUrl } from './seo'; + +function meta(attribute, key, value) { + let element = document.head.querySelector(`meta[${attribute}="${key}"]`); + if (!element) { + element = document.createElement('meta'); + element.setAttribute(attribute, key); + document.head.appendChild(element); + } + element.setAttribute('content', value); +} + +/** Set the head for the current page. `route` is the site-relative path ("/rhel9-sysadmin/ch07/acls"). */ +export function setHead({ title, description, route, index = true }) { + if (title) { + document.title = title; + meta('property', 'og:title', title); + meta('name', 'twitter:title', title); + } + if (description) { + meta('name', 'description', description); + meta('property', 'og:description', description); + meta('name', 'twitter:description', description); + } + if (route !== undefined) { + const url = canonicalUrl(window.location.origin, import.meta.env.BASE_URL, route); + let link = document.head.querySelector('link[rel="canonical"]'); + if (!link) { + link = document.createElement('link'); + link.setAttribute('rel', 'canonical'); + document.head.appendChild(link); + } + link.setAttribute('href', url); + meta('property', 'og:url', url); + } + meta('name', 'robots', index ? 'index, follow, max-image-preview:large' : 'noindex, follow'); +} diff --git a/packages/engine/src/lib/router.jsx b/packages/engine/src/lib/router.jsx index 4279e0e..6f13537 100644 --- a/packages/engine/src/lib/router.jsx +++ b/packages/engine/src/lib/router.jsx @@ -5,16 +5,25 @@ import { forwardRef } from 'react'; import { Link as RouterLink, NavLink as RouterNavLink, useLocation, useNavigate as useRouterNavigate } from 'react-router-dom'; import { program } from './course'; -/** "/ch03/x" → "/rhel9-ansible/ch03/x"; anything not rooted (hashes, objects) is left alone. */ +/** "/rhel9-ansible/ch03/x#h" → "/rhel9-ansible/ch03/x/#h": every page's address ends with a slash, the form the + * static host serves its HTML file under, so links never go through a redirect. */ +export function withSlash(path) { + const cut = path.search(/[?#]/); + const [route, rest] = cut === -1 ? [path, ''] : [path.slice(0, cut), path.slice(cut)]; + return `${route.endsWith('/') ? route : `${route}/`}${rest}`; +} + +/** "/ch03/x" → "/rhel9-ansible/ch03/x/"; anything not rooted (hashes, objects) is left alone. */ export function programPath(to) { - return typeof to === 'string' && to.startsWith('/') ? `/${program.id}${to === '/' ? '' : to}` : to; + return typeof to === 'string' && to.startsWith('/') ? withSlash(`/${program.id}${to === '/' ? '' : to}`) : to; } /** The current location with the program prefix removed ("/rhel9-ansible/ch03/x" → "/ch03/x"). */ export function useProgramLocation() { const location = useLocation(); const prefix = `/${program.id}`; - const pathname = location.pathname.startsWith(prefix) ? location.pathname.slice(prefix.length) || '/' : location.pathname; + let pathname = location.pathname.startsWith(prefix) ? location.pathname.slice(prefix.length) || '/' : location.pathname; + if (pathname.length > 1 && pathname.endsWith('/')) pathname = pathname.slice(0, -1); return { ...location, pathname }; } diff --git a/packages/engine/src/lib/seo.js b/packages/engine/src/lib/seo.js new file mode 100644 index 0000000..2140c31 --- /dev/null +++ b/packages/engine/src/lib/seo.js @@ -0,0 +1,74 @@ +// Titles, descriptions and addresses for search engines. Shared by the running app (which keeps the +// document's head in step with the page) and the build (scripts/prerender.mjs, which writes them into +// each page's HTML), so a crawler sees the same values with or without JavaScript. +// Pure functions only: no imports, no browser globals, no React. + +const SEPARATOR = ' | '; + +/** The flat text of a compiled page tree (or of part of one). */ +export function treeText(nodes) { + if (!Array.isArray(nodes)) return ''; + return nodes.map((n) => (n?.t === 'text' ? n.v : n?.c ? treeText(n.c) : '')).join(''); +} + +/** Shorten to a search-result length at a word boundary. */ +export function clip(text, length = 158) { + const flat = String(text ?? '') + .replace(/\s+/g, ' ') + .trim(); + return flat.length <= length ? flat : `${flat.slice(0, length - 1).replace(/\s+\S*$/, '')}…`; +} + +/** The lead paragraph of a page: the {% lead %} tag, else the first paragraph. */ +export function leadText(tree) { + if (!Array.isArray(tree)) return ''; + const lead = tree.find((n) => n?.t === 'tag' && n.name === 'lead'); + if (lead) return treeText(lead.c); + const paragraph = tree.find((n) => n?.t === 'el' && n.tag === 'p'); + return paragraph ? treeText(paragraph.c) : ''; +} + +/** "RHCSA (EX200)" for a program that names its certification, else the program title. */ +export function examLabel(program) { + const exam = program?.certifications?.[0]; + return exam ? `${exam.name.match(/\(([A-Z]+)\)/)?.[1] ?? exam.name} ${exam.code}` : null; +} + +export function homeMeta(site, homePage) { + return { + title: homePage?.seoTitle ?? `${site.site.name}${SEPARATOR}${site.site.tagline}`, + description: clip(homePage?.description ?? site.site.description), + }; +} + +export function programMeta(program, siteName) { + return { + title: program.seoTitle ?? `${program.title}${SEPARATOR}${siteName}`, + description: clip(program.seoDescription ?? program.summary), + }; +} + +export function chapterMeta(chapter, program) { + const exam = examLabel(program); + return { + title: chapter.seoTitle ?? `${chapter.title}${exam ? ` (${exam})` : ''}${SEPARATOR}Chapter ${chapter.number}`, + description: clip(chapter.seoDescription ?? chapter.goal ?? program.summary), + }; +} + +/** A section's title and description; `page` (the compiled page) adds its lead text when it is loaded. */ +export function sectionMeta(section, chapter, program, page) { + return { + title: section.seoTitle ?? page?.seoTitle ?? `${section.title}${SEPARATOR}${chapter.title}`, + description: clip(section.description ?? page?.description ?? (leadText(page?.tree) || chapter.goal || program.summary)), + }; +} + +/** The public address of a route: always with a trailing slash, the form the static host serves. */ +export function canonicalUrl(origin, base, route) { + const path = String(route ?? '/') + .split(/[?#]/)[0] + .replace(/^\/+|\/+$/g, ''); + const prefix = String(base ?? '/').replace(/\/?$/, '/'); + return `${String(origin).replace(/\/$/, '')}${prefix}${path}${path ? '/' : ''}`; +} diff --git a/packages/engine/src/main.jsx b/packages/engine/src/main.jsx index c7bc0b3..e3dbbce 100644 --- a/packages/engine/src/main.jsx +++ b/packages/engine/src/main.jsx @@ -17,13 +17,14 @@ import './styles/motion.css'; import App from './App'; import BootError from './pages/BootError'; import { bootContent } from './lib/course'; +import { withSlash } from './lib/router'; // Addresses from before pages had paths ("/#/rhel9-ansible/ch03/inventory#heading") move to the path form, // on arrival and when an old link changes the hash later. function moveHashAddress() { if (!window.location.hash.startsWith('#/')) return false; const base = import.meta.env.BASE_URL.replace(/\/$/, ''); - window.history.replaceState(null, '', `${base}${window.location.hash.slice(1)}`); + window.history.replaceState(null, '', `${base}${withSlash(window.location.hash.slice(1))}`); return true; } moveHashAddress(); @@ -34,13 +35,32 @@ window.addEventListener('hashchange', () => { const root = createRoot(document.getElementById('root')); +/** Once the browser is idle, fetch the code the app may need later, so nothing waits on the network afterwards. */ +function fetchTheRestWhenIdle() { + const later = document.querySelector('meta[name="kernel-path-later"]')?.content.split(' ').filter(Boolean) ?? []; + const idle = window.requestIdleCallback ?? ((callback) => setTimeout(callback, 1500)); + idle(() => { + for (const href of later) { + const link = document.createElement('link'); + if (href.endsWith('.css')) { + link.rel = 'preload'; + link.as = 'style'; + } else link.rel = 'modulepreload'; + link.href = href; + document.head.appendChild(link); + } + }); +} + bootContent().then( - () => + () => { root.render( , - ), + ); + fetchTheRestWhenIdle(); + }, (error) => { console.error(error); root.render( diff --git a/packages/engine/src/pages/ChapterPage.jsx b/packages/engine/src/pages/ChapterPage.jsx index dc266ed..4b43afc 100644 --- a/packages/engine/src/pages/ChapterPage.jsx +++ b/packages/engine/src/pages/ChapterPage.jsx @@ -2,7 +2,9 @@ import { useEffect } from 'react'; import { useParams } from 'react-router-dom'; import { Link } from '@/lib/router'; import { ArrowRight, Check, Clock } from 'lucide-react'; -import { course, findChapter, kindLabel } from '@/lib/course'; +import { course, findChapter, kindLabel, program } from '@/lib/course'; +import { setHead } from '@/lib/head'; +import { chapterMeta } from '@/lib/seo'; import { chapterProgress, useProgress } from '@/hooks/useProgress'; import { kindIcon } from '@/components/layout/Sidebar'; import NotFound from './NotFound'; @@ -13,7 +15,7 @@ export default function ChapterPage() { const { done, isDone } = useProgress(); useEffect(() => { - if (chapter) document.title = `Chapter ${chapter.number}: ${chapter.title} · ${course.title}`; + if (chapter) setHead({ ...chapterMeta(chapter, program), route: `/${program.id}/${chapter.id}` }); }, [chapter]); if (!chapter) return ; diff --git a/packages/engine/src/pages/HomePage.jsx b/packages/engine/src/pages/HomePage.jsx index 09fbc69..129109f 100644 --- a/packages/engine/src/pages/HomePage.jsx +++ b/packages/engine/src/pages/HomePage.jsx @@ -1,7 +1,9 @@ import { useEffect } from 'react'; import { Link } from '@/lib/router'; import { ArrowRight, BookOpen, Check, CircleHelp, FlaskConical, ListChecks } from 'lucide-react'; -import { chapters, course, track, pages } from '@/lib/course'; +import { chapters, course, track, pages, program, site } from '@/lib/course'; +import { setHead } from '@/lib/head'; +import { programMeta } from '@/lib/seo'; import { chapterProgress, useProgress } from '@/hooks/useProgress'; import { useStored } from '@/lib/storage'; import { Arrow, Diagram, Group, Node } from '@/diagrams/kit'; @@ -43,7 +45,7 @@ export default defineWidget('HomePage', (copy) => { const { done, percent } = useProgress(); useEffect(() => { - document.title = formatCopy(copy.text.template, [course.title, course.tagline]); + setHead({ ...programMeta(program, site.site.name), route: `/${program.id}` }); }, []); const [lastVisited] = useStored('lastVisited', null); diff --git a/packages/engine/src/pages/PlatformHome.jsx b/packages/engine/src/pages/PlatformHome.jsx index 371c7a1..46071a6 100644 --- a/packages/engine/src/pages/PlatformHome.jsx +++ b/packages/engine/src/pages/PlatformHome.jsx @@ -1,5 +1,7 @@ import { useEffect, useState } from 'react'; import { loadSiteHome, site } from '@/lib/course'; +import { setHead } from '@/lib/head'; +import { homeMeta } from '@/lib/seo'; import PageTree from '@/components/content/PageTree'; /** The site's home page: its text comes from content/site/home.md. */ @@ -9,12 +11,16 @@ export default function PlatformHome() { useEffect(() => { let alive = true; - document.title = `${site.site.name} · ${site.site.tagline}`; + setHead({ ...homeMeta(site, null), route: '/' }); const load = loadSiteHome(); if (!load) setError('This site has no home page yet.'); else load.then( - (loaded) => alive && setPage(loaded), + (loaded) => { + if (!alive) return; + setPage(loaded); + setHead({ ...homeMeta(site, loaded), route: '/' }); + }, () => alive && setError('The home page could not load. Reload to try again.'), ); return () => { diff --git a/packages/engine/src/pages/ProgramLanding.jsx b/packages/engine/src/pages/ProgramLanding.jsx index 1c7c198..c7bab76 100644 --- a/packages/engine/src/pages/ProgramLanding.jsx +++ b/packages/engine/src/pages/ProgramLanding.jsx @@ -2,6 +2,8 @@ import { useEffect } from 'react'; import { ArrowRight, Check } from 'lucide-react'; import { Link } from '@/lib/router'; import { chapters, pages, program, site } from '@/lib/course'; +import { setHead } from '@/lib/head'; +import { programMeta } from '@/lib/seo'; import { chapterProgress, useProgress } from '@/hooks/useProgress'; import { useStored } from '@/lib/storage'; @@ -19,7 +21,7 @@ export default function ProgramLanding() { const stages = program.stages ?? []; useEffect(() => { - document.title = `${program.title} · ${site.site.name}`; + setHead({ ...programMeta(program, site.site.name), route: `/${program.id}` }); }, []); return ( diff --git a/packages/engine/src/pages/ProgramProgress.jsx b/packages/engine/src/pages/ProgramProgress.jsx index cc85ced..7a69b9b 100644 --- a/packages/engine/src/pages/ProgramProgress.jsx +++ b/packages/engine/src/pages/ProgramProgress.jsx @@ -1,12 +1,13 @@ import { useEffect } from 'react'; import { chapters, program, site } from '@/lib/course'; +import { setHead } from '@/lib/head'; import { chapterProgress, useProgress } from '@/hooks/useProgress'; /** The learning dashboard of a program that has no authored dashboard copy: overall and per-chapter progress. */ export default function ProgramProgress() { const { done, percent, total } = useProgress(); useEffect(() => { - document.title = `Your learning · ${site.site.name}`; + setHead({ title: `Your learning · ${site.site.name}`, route: `/${program.id}/progress`, index: false }); }, []); return (
    diff --git a/packages/engine/src/pages/ProgressPage.jsx b/packages/engine/src/pages/ProgressPage.jsx index 7e0bec5..72d22df 100644 --- a/packages/engine/src/pages/ProgressPage.jsx +++ b/packages/engine/src/pages/ProgressPage.jsx @@ -1,6 +1,7 @@ import { useEffect, useRef, useState } from 'react'; import { Link } from '@/lib/router'; -import { challenges, course, chapters, objectives, pages } from '@/lib/course'; +import { challenges, course, chapters, objectives, pages, program } from '@/lib/course'; +import { setHead } from '@/lib/head'; import { useProgressData, useStored } from '@/lib/storage'; import { validateLabReport } from '@/lib/labReports'; import { defineWidget, formatCopy } from '@/components/interactive/TeachingContent'; @@ -63,7 +64,7 @@ export default defineWidget('ProgressPage', (copy) => { } }; useEffect(() => { - document.title = formatCopy(copy.text.template2, [course.title]); + setHead({ title: formatCopy(copy.text.template2, [course.title]), route: `/${program.id}/progress`, index: false }); }, []); return (
    diff --git a/packages/engine/src/pages/ReferencePage.jsx b/packages/engine/src/pages/ReferencePage.jsx index b0b3ec7..7b25d53 100644 --- a/packages/engine/src/pages/ReferencePage.jsx +++ b/packages/engine/src/pages/ReferencePage.jsx @@ -1,5 +1,6 @@ import { useEffect, useRef, useState } from 'react'; -import { course, referenceLoaderFor } from '@/lib/course'; +import { course, program, referenceLoaderFor } from '@/lib/course'; +import { setHead } from '@/lib/head'; import { useHeadingNavigation } from '@/hooks/useHeadingNavigation'; import LearningPageLayout from '@/components/layout/LearningPageLayout'; import PageTree from '@/components/content/PageTree'; @@ -12,7 +13,7 @@ export default function ReferencePage({ page }) { useHeadingNavigation(!!Content); useEffect(() => { let alive = true; - document.title = `${page.title} · ${course.title}`; + setHead({ title: `${page.title} · ${course.title}`, route: `/${program.id}/platform`, index: false }); setContent(null); setError(null); const load = referenceLoaderFor(page); diff --git a/packages/engine/src/pages/SectionPage.jsx b/packages/engine/src/pages/SectionPage.jsx index 656688a..7094eee 100644 --- a/packages/engine/src/pages/SectionPage.jsx +++ b/packages/engine/src/pages/SectionPage.jsx @@ -2,7 +2,9 @@ import { useEffect, useRef, useState } from 'react'; import { useParams } from 'react-router-dom'; import { Link } from '@/lib/router'; import { ArrowLeft, ArrowRight, Check, Clock } from 'lucide-react'; -import { course, findPage, kindLabel, loaderFor, neighbours } from '@/lib/course'; +import { course, findPage, kindLabel, loaderFor, neighbours, program } from '@/lib/course'; +import { setHead } from '@/lib/head'; +import { sectionMeta } from '@/lib/seo'; import { useProgress } from '@/hooks/useProgress'; import { useHeadingNavigation } from '@/hooks/useHeadingNavigation'; import { useStored } from '@/lib/storage'; @@ -46,10 +48,13 @@ function Section({ page }) { }, [page]); useEffect(() => { - document.title = `${page.number} ${page.section.title} · ${course.title}`; setLastVisited(page.key); }, [page, setLastVisited]); + useEffect(() => { + setHead({ ...sectionMeta(page.section, page.chapter, program, Content), route: `/${program.id}/${page.key}` }); + }, [page, Content]); + return ( 30){validate114.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate114.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate114.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate114.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.areas === undefined) && (missing1 = "areas")) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate114.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "areas") || (key2 === "initialSelection1"))){validate114.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.areas !== undefined){let data3 = data2.areas;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){if(Object.keys(data3).length > 30){validate114.errors = [{instancePath:instancePath+"/data/areas",schemaPath:"#/properties/data/properties/areas/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data3){let data4 = data3[key3];const _errs13 = errors;if(errors === _errs13){if(Array.isArray(data4)){if(data4.length > 20){validate114.errors = [{instancePath:instancePath+"/data/areas/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/areas/additionalProperties/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid4 = true;const len0 = data4.length;for(let i0=0; i0 20){validate114.errors = [{instancePath:instancePath+"/data/areas/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/properties/areas/additionalProperties/items/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data5.length;for(let i1=0; i1 4000){validate114.errors = [{instancePath:instancePath+"/data/areas/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/" + i1,schemaPath:"#/properties/data/properties/areas/additionalProperties/items/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate114.errors = [{instancePath:instancePath+"/data/areas/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/" + i1,schemaPath:"#/properties/data/properties/areas/additionalProperties/items/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs17 === errors;if(!valid5){break;}}}}else {validate114.errors = [{instancePath:instancePath+"/data/areas/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/properties/areas/additionalProperties/items/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs15 === errors;if(!valid4){break;}}}}else {validate114.errors = [{instancePath:instancePath+"/data/areas/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/areas/additionalProperties/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid3 = _errs13 === errors;if(!valid3){break;}}}}else {validate114.errors = [{instancePath:instancePath+"/data/areas",schemaPath:"#/properties/data/properties/areas/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data7 = data2.initialSelection1;const _errs19 = errors;if(errors === _errs19){if(typeof data7 === "string"){if(func2(data7) > 4000){validate114.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate114.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs19 === errors;}else {var valid2 = true;}}}}}else {validate114.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate114.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate114.errors = vErrors;return errors === 0;}validate114.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_annotated_yaml = validate115;const schema185 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/annotated-yaml.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","additionalProperties":false,"required":["ayamlHint","widgetLabel"],"properties":{"ayamlHint":{"type":"string","maxLength":4000},"widgetLabel":{"type":"string","maxLength":4000}}},"data":{"type":"object","additionalProperties":false},"props":{"type":"object","additionalProperties":false,"required":["title","code","notes"],"properties":{"title":{"type":"string","maxLength":4000},"code":{"type":"string","maxLength":4000},"notes":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["lines","title","text"],"properties":{"lines":{"type":"array","maxItems":20,"items":{"type":"integer"}},"title":{"type":"string","maxLength":4000},"text":{"type":"string","maxLength":4000}}}}}}}};function validate115(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/annotated-yaml.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate115.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate115.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "props"))){validate115.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){let missing1;if(((data0.ayamlHint === undefined) && (missing1 = "ayamlHint")) || ((data0.widgetLabel === undefined) && (missing1 = "widgetLabel"))){validate115.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs4 = errors;for(const key1 in data0){if(!((key1 === "ayamlHint") || (key1 === "widgetLabel"))){validate115.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs4 === errors){if(data0.ayamlHint !== undefined){let data1 = data0.ayamlHint;const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate115.errors = [{instancePath:instancePath+"/text/ayamlHint",schemaPath:"#/properties/text/properties/ayamlHint/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate115.errors = [{instancePath:instancePath+"/text/ayamlHint",schemaPath:"#/properties/text/properties/ayamlHint/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;}else {var valid1 = true;}if(valid1){if(data0.widgetLabel !== undefined){let data2 = data0.widgetLabel;const _errs7 = errors;if(errors === _errs7){if(typeof data2 === "string"){if(func2(data2) > 4000){validate115.errors = [{instancePath:instancePath+"/text/widgetLabel",schemaPath:"#/properties/text/properties/widgetLabel/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate115.errors = [{instancePath:instancePath+"/text/widgetLabel",schemaPath:"#/properties/text/properties/widgetLabel/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs7 === errors;}else {var valid1 = true;}}}}}else {validate115.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data3 = data.data;const _errs9 = errors;if(errors === _errs9){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){for(const key2 in data3){validate115.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate115.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs9 === errors;}else {var valid0 = true;}if(valid0){if(data.props !== undefined){let data4 = data.props;const _errs12 = errors;if(errors === _errs12){if(data4 && typeof data4 == "object" && !Array.isArray(data4)){let missing2;if((((data4.title === undefined) && (missing2 = "title")) || ((data4.code === undefined) && (missing2 = "code"))) || ((data4.notes === undefined) && (missing2 = "notes"))){validate115.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs14 = errors;for(const key3 in data4){if(!(((key3 === "title") || (key3 === "code")) || (key3 === "notes"))){validate115.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs14 === errors){if(data4.title !== undefined){let data5 = data4.title;const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate115.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate115.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs15 === errors;}else {var valid2 = true;}if(valid2){if(data4.code !== undefined){let data6 = data4.code;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate115.errors = [{instancePath:instancePath+"/props/code",schemaPath:"#/properties/props/properties/code/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate115.errors = [{instancePath:instancePath+"/props/code",schemaPath:"#/properties/props/properties/code/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}if(valid2){if(data4.notes !== undefined){let data7 = data4.notes;const _errs19 = errors;if(errors === _errs19){if(Array.isArray(data7)){if(data7.length > 20){validate115.errors = [{instancePath:instancePath+"/props/notes",schemaPath:"#/properties/props/properties/notes/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data7.length;for(let i0=0; i0 20){validate115.errors = [{instancePath:instancePath+"/props/notes/" + i0+"/lines",schemaPath:"#/properties/props/properties/notes/items/properties/lines/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data9.length;for(let i1=0; i1 4000){validate115.errors = [{instancePath:instancePath+"/props/notes/" + i0+"/title",schemaPath:"#/properties/props/properties/notes/items/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate115.errors = [{instancePath:instancePath+"/props/notes/" + i0+"/title",schemaPath:"#/properties/props/properties/notes/items/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs28 === errors;}else {var valid4 = true;}if(valid4){if(data8.text !== undefined){let data12 = data8.text;const _errs30 = errors;if(errors === _errs30){if(typeof data12 === "string"){if(func2(data12) > 4000){validate115.errors = [{instancePath:instancePath+"/props/notes/" + i0+"/text",schemaPath:"#/properties/props/properties/notes/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate115.errors = [{instancePath:instancePath+"/props/notes/" + i0+"/text",schemaPath:"#/properties/props/properties/notes/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs30 === errors;}else {var valid4 = true;}}}}}}else {validate115.errors = [{instancePath:instancePath+"/props/notes/" + i0,schemaPath:"#/properties/props/properties/notes/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs21 === errors;if(!valid3){break;}}}}else {validate115.errors = [{instancePath:instancePath+"/props/notes",schemaPath:"#/properties/props/properties/notes/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs19 === errors;}else {var valid2 = true;}}}}}}else {validate115.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs12 === errors;}else {var valid0 = true;}}}}}}else {validate115.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate115.errors = vErrors;return errors === 0;}validate115.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_block_flow = validate116;const schema186 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/block-flow.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":72,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false}}};function validate116(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/block-flow.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate116.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate116.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate116.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 72){validate116.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 72},message:"must NOT have more than 72 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate116.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate116.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate116.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate116.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate116.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate116.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate116.errors = vErrors;return errors === 0;}validate116.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_build_roadmap = validate117;const schema187 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/build-roadmap.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["phases"],"properties":{"phases":{"type":"array","maxItems":28,"items":{"type":"object","additionalProperties":false,"required":["n","title","min","where","slug"],"properties":{"n":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"min":{"type":"integer"},"where":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"slug":{"type":"string","maxLength":4000}}}}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};const pattern82 = new RegExp("^[A-Z][A-Za-z0-9]*$", "u");function validate117(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/build-roadmap.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate117.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate117.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate117.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate117.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate117.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate117.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate117.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.phases === undefined) && (missing1 = "phases")){validate117.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "phases")){validate117.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.phases !== undefined){let data3 = data2.phases;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 28){validate117.errors = [{instancePath:instancePath+"/data/phases",schemaPath:"#/properties/data/properties/phases/maxItems",keyword:"maxItems",params:{limit: 28},message:"must NOT have more than 28 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate117.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/n",schemaPath:"#/properties/data/properties/phases/items/properties/n/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate117.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/n",schemaPath:"#/properties/data/properties/phases/items/properties/n/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.title !== undefined){let data6 = data4.title;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate117.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/title",schemaPath:"#/properties/data/properties/phases/items/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate117.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/title",schemaPath:"#/properties/data/properties/phases/items/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.min !== undefined){let data7 = data4.min;const _errs19 = errors;if(!(((typeof data7 == "number") && (!(data7 % 1) && !isNaN(data7))) && (isFinite(data7)))){validate117.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/min",schemaPath:"#/properties/data/properties/phases/items/properties/min/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data4.where !== undefined){let data8 = data4.where;const _errs21 = errors;if(errors === _errs21){if(Array.isArray(data8)){if(data8.length > 20){validate117.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/where",schemaPath:"#/properties/data/properties/phases/items/properties/where/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data8.length;for(let i1=0; i1 4000){validate117.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/where/" + i1,schemaPath:"#/properties/data/properties/phases/items/properties/where/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate117.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/where/" + i1,schemaPath:"#/properties/data/properties/phases/items/properties/where/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs23 === errors;if(!valid5){break;}}}}else {validate117.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/where",schemaPath:"#/properties/data/properties/phases/items/properties/where/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs21 === errors;}else {var valid4 = true;}if(valid4){if(data4.slug !== undefined){let data10 = data4.slug;const _errs25 = errors;if(errors === _errs25){if(typeof data10 === "string"){if(func2(data10) > 4000){validate117.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/slug",schemaPath:"#/properties/data/properties/phases/items/properties/slug/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate117.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/slug",schemaPath:"#/properties/data/properties/phases/items/properties/slug/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs25 === errors;}else {var valid4 = true;}}}}}}}}else {validate117.errors = [{instancePath:instancePath+"/data/phases/" + i0,schemaPath:"#/properties/data/properties/phases/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate117.errors = [{instancePath:instancePath+"/data/phases",schemaPath:"#/properties/data/properties/phases/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate117.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data11 = data.dependencies;const _errs27 = errors;if(errors === _errs27){if(data11 && typeof data11 == "object" && !Array.isArray(data11)){for(const key4 in data11){const _errs29 = errors;if(typeof key4 === "string"){if(!pattern82.test(key4)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key4};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid6 = _errs29 === errors;if(!valid6){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key4},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate117.errors = vErrors;return false;break;}}if(valid6){for(const key5 in data11){let data12 = data11[key5];const _errs31 = errors;if(errors === _errs31){if(data12 && typeof data12 == "object" && !Array.isArray(data12)){const _errs33 = errors;for(const key6 in data12){if(!((key6 === "text") || (key6 === "data"))){validate117.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"}];return false;break;}}if(_errs33 === errors){if(data12.text !== undefined){let data13 = data12.text;const _errs34 = errors;if(errors === _errs34){if(data13 && typeof data13 == "object" && !Array.isArray(data13)){for(const key7 in data13){let data14 = data13[key7];const _errs37 = errors;if(errors === _errs37){if(typeof data14 === "string"){if(func2(data14) > 4000){validate117.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate117.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid9 = _errs37 === errors;if(!valid9){break;}}}else {validate117.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid8 = _errs34 === errors;}else {var valid8 = true;}if(valid8){if(data12.data !== undefined){let data15 = data12.data;const _errs39 = errors;if(!(data15 && typeof data15 == "object" && !Array.isArray(data15))){validate117.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid8 = _errs39 === errors;}else {var valid8 = true;}}}}else {validate117.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid7 = _errs31 === errors;if(!valid7){break;}}}}else {validate117.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs27 === errors;}else {var valid0 = true;}}}}}}else {validate117.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate117.errors = vErrors;return errors === 0;}validate117.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_check_mode_sim = validate118;const schema188 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/check-mode-sim.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":72,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false}}};function validate118(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/check-mode-sim.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate118.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate118.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate118.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 72){validate118.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 72},message:"must NOT have more than 72 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate118.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate118.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate118.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate118.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate118.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate118.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate118.errors = vErrors;return errors === 0;}validate118.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_command_vs_module = validate119;const schema189 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/command-vs-module.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":48,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false}}};function validate119(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/command-vs-module.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate119.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate119.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate119.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 48){validate119.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 48},message:"must NOT have more than 48 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate119.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate119.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate119.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate119.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate119.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate119.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate119.errors = vErrors;return errors === 0;}validate119.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_condition_playground = validate120;const schema190 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/condition-playground.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":84,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["hosts"],"properties":{"hosts":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["name","distribution","major","version","mem","vars"],"properties":{"name":{"type":"string","maxLength":4000},"distribution":{"type":"string","maxLength":4000},"major":{"type":"string","maxLength":4000},"version":{"type":"string","maxLength":4000},"mem":{"type":"integer"},"vars":{"type":"object","additionalProperties":false,"properties":{"my_service":{"type":"string","maxLength":4000}}}}}}}}}};function validate120(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/condition-playground.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate120.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate120.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate120.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 84){validate120.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 84},message:"must NOT have more than 84 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate120.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate120.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate120.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.hosts === undefined) && (missing1 = "hosts")){validate120.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "hosts")){validate120.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.hosts !== undefined){let data3 = data2.hosts;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate120.errors = [{instancePath:instancePath+"/data/hosts",schemaPath:"#/properties/data/properties/hosts/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate120.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/name",schemaPath:"#/properties/data/properties/hosts/items/properties/name/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate120.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/name",schemaPath:"#/properties/data/properties/hosts/items/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.distribution !== undefined){let data6 = data4.distribution;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate120.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/distribution",schemaPath:"#/properties/data/properties/hosts/items/properties/distribution/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate120.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/distribution",schemaPath:"#/properties/data/properties/hosts/items/properties/distribution/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.major !== undefined){let data7 = data4.major;const _errs19 = errors;if(errors === _errs19){if(typeof data7 === "string"){if(func2(data7) > 4000){validate120.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/major",schemaPath:"#/properties/data/properties/hosts/items/properties/major/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate120.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/major",schemaPath:"#/properties/data/properties/hosts/items/properties/major/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data4.version !== undefined){let data8 = data4.version;const _errs21 = errors;if(errors === _errs21){if(typeof data8 === "string"){if(func2(data8) > 4000){validate120.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/version",schemaPath:"#/properties/data/properties/hosts/items/properties/version/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate120.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/version",schemaPath:"#/properties/data/properties/hosts/items/properties/version/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs21 === errors;}else {var valid4 = true;}if(valid4){if(data4.mem !== undefined){let data9 = data4.mem;const _errs23 = errors;if(!(((typeof data9 == "number") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))){validate120.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/mem",schemaPath:"#/properties/data/properties/hosts/items/properties/mem/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs23 === errors;}else {var valid4 = true;}if(valid4){if(data4.vars !== undefined){let data10 = data4.vars;const _errs25 = errors;if(errors === _errs25){if(data10 && typeof data10 == "object" && !Array.isArray(data10)){const _errs27 = errors;for(const key4 in data10){if(!(key4 === "my_service")){validate120.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/vars",schemaPath:"#/properties/data/properties/hosts/items/properties/vars/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs27 === errors){if(data10.my_service !== undefined){let data11 = data10.my_service;const _errs28 = errors;if(errors === _errs28){if(typeof data11 === "string"){if(func2(data11) > 4000){validate120.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/vars/my_service",schemaPath:"#/properties/data/properties/hosts/items/properties/vars/properties/my_service/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate120.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/vars/my_service",schemaPath:"#/properties/data/properties/hosts/items/properties/vars/properties/my_service/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}}else {validate120.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/vars",schemaPath:"#/properties/data/properties/hosts/items/properties/vars/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid4 = _errs25 === errors;}else {var valid4 = true;}}}}}}}}}else {validate120.errors = [{instancePath:instancePath+"/data/hosts/" + i0,schemaPath:"#/properties/data/properties/hosts/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate120.errors = [{instancePath:instancePath+"/data/hosts",schemaPath:"#/properties/data/properties/hosts/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate120.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate120.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate120.errors = vErrors;return errors === 0;}validate120.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_cron_builder = validate121;const schema191 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/cron-builder.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":99,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","maxProperties":30,"additionalProperties":{"type":"array","maxItems":20,"items":{"anyOf":[{"type":"object","additionalProperties":false,"required":["label"],"properties":{"key":{"type":"string","maxLength":4000},"label":{"type":"string","maxLength":4000},"hint":{"type":"string","maxLength":4000},"v":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}}}},{"type":"string","maxLength":4000}]}}}}};function validate121(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/cron-builder.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate121.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate121.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate121.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 99){validate121.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 99},message:"must NOT have more than 99 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate121.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate121.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate121.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){if(Object.keys(data2).length > 30){validate121.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key2 in data2){let data3 = data2[key2];const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate121.errors = [{instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){const err2 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/key",schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/key/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}else {const err3 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/key",schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/key/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}var valid5 = _errs17 === errors;}else {var valid5 = true;}if(valid5){if(data4.label !== undefined){let data6 = data4.label;const _errs19 = errors;if(errors === _errs19){if(typeof data6 === "string"){if(func2(data6) > 4000){const err4 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/label",schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}else {const err5 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/label",schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}var valid5 = _errs19 === errors;}else {var valid5 = true;}if(valid5){if(data4.hint !== undefined){let data7 = data4.hint;const _errs21 = errors;if(errors === _errs21){if(typeof data7 === "string"){if(func2(data7) > 4000){const err6 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/hint",schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/hint/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/hint",schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/hint/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}var valid5 = _errs21 === errors;}else {var valid5 = true;}if(valid5){if(data4.v !== undefined){let data8 = data4.v;const _errs23 = errors;if(errors === _errs23){if(data8 && typeof data8 == "object" && !Array.isArray(data8)){if(Object.keys(data8).length > 30){const err8 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/v",schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/v/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}else {for(const key4 in data8){let data9 = data8[key4];const _errs26 = errors;if(errors === _errs26){if(typeof data9 === "string"){if(func2(data9) > 4000){const err9 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/v/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/v/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/v/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/v/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}var valid6 = _errs26 === errors;if(!valid6){break;}}}}else {const err11 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/v",schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/v/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}var valid5 = _errs23 === errors;}else {var valid5 = true;}}}}}}}else {const err12 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}var _valid0 = _errs14 === errors;valid4 = valid4 || _valid0;const _errs28 = errors;if(errors === _errs28){if(typeof data4 === "string"){if(func2(data4) > 4000){const err13 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/additionalProperties/items/anyOf/1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/additionalProperties/items/anyOf/1/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}var _valid0 = _errs28 === errors;valid4 = valid4 || _valid0;if(!valid4){const err15 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/additionalProperties/items/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;validate121.errors = vErrors;return false;}else {errors = _errs13;if(vErrors !== null){if(_errs13){vErrors.length = _errs13;}else {vErrors = null;}}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate121.errors = [{instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;if(!valid2){break;}}}}else {validate121.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate121.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate121.errors = vErrors;return errors === 0;}validate121.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_custom_fact_builder = validate122;const schema192 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/custom-fact-builder.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":39,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["start","initialSelection1"],"properties":{"start":{"type":"string","maxLength":4000},"initialSelection1":{"type":"string","maxLength":4000}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate122(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/custom-fact-builder.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate122.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate122.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate122.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 39){validate122.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 39},message:"must NOT have more than 39 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate122.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate122.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate122.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.start === undefined) && (missing1 = "start")) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate122.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "start") || (key2 === "initialSelection1"))){validate122.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.start !== undefined){let data3 = data2.start;const _errs10 = errors;if(errors === _errs10){if(typeof data3 === "string"){if(func2(data3) > 4000){validate122.errors = [{instancePath:instancePath+"/data/start",schemaPath:"#/properties/data/properties/start/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate122.errors = [{instancePath:instancePath+"/data/start",schemaPath:"#/properties/data/properties/start/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data4 = data2.initialSelection1;const _errs12 = errors;if(errors === _errs12){if(typeof data4 === "string"){if(func2(data4) > 4000){validate122.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate122.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs12 === errors;}else {var valid2 = true;}}}}}else {validate122.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data5 = data.dependencies;const _errs14 = errors;if(errors === _errs14){if(data5 && typeof data5 == "object" && !Array.isArray(data5)){for(const key3 in data5){const _errs16 = errors;if(typeof key3 === "string"){if(!pattern82.test(key3)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key3};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid3 = _errs16 === errors;if(!valid3){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key3},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate122.errors = vErrors;return false;break;}}if(valid3){for(const key4 in data5){let data6 = data5[key4];const _errs18 = errors;if(errors === _errs18){if(data6 && typeof data6 == "object" && !Array.isArray(data6)){const _errs20 = errors;for(const key5 in data6){if(!((key5 === "text") || (key5 === "data"))){validate122.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs20 === errors){if(data6.text !== undefined){let data7 = data6.text;const _errs21 = errors;if(errors === _errs21){if(data7 && typeof data7 == "object" && !Array.isArray(data7)){for(const key6 in data7){let data8 = data7[key6];const _errs24 = errors;if(errors === _errs24){if(typeof data8 === "string"){if(func2(data8) > 4000){validate122.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate122.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs24 === errors;if(!valid6){break;}}}else {validate122.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs21 === errors;}else {var valid5 = true;}if(valid5){if(data6.data !== undefined){let data9 = data6.data;const _errs26 = errors;if(!(data9 && typeof data9 == "object" && !Array.isArray(data9))){validate122.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid5 = _errs26 === errors;}else {var valid5 = true;}}}}else {validate122.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid4 = _errs18 === errors;if(!valid4){break;}}}}else {validate122.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs14 === errors;}else {var valid0 = true;}}}}}}else {validate122.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate122.errors = vErrors;return errors === 0;}validate122.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_data_explorer = validate123;const schema193 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/data-explorer.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false},"props":{"type":"object","additionalProperties":false,"required":["name","data","initial"],"properties":{"name":{"type":"string","maxLength":4000},"data":{"type":"object","additionalProperties":false,"properties":{"bjones":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"acook":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"changed":{"type":"boolean"},"msg":{"type":"string","maxLength":4000},"results":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["ansible_loop_var","item","changed","cmd","rc","stdout","stdout_lines","failed"],"properties":{"ansible_loop_var":{"type":"string","maxLength":4000},"item":{"type":"string","maxLength":4000},"changed":{"type":"boolean"},"cmd":{"type":"string","maxLength":4000},"rc":{"type":"integer"},"stdout":{"type":"string","maxLength":4000},"stdout_lines":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"failed":{"type":"boolean"}}}},"skipped":{"type":"boolean"}}},"initial":{"type":"array","maxItems":20,"items":{"anyOf":[{"type":"string","maxLength":4000},{"type":"integer"}]}}}}}};function validate123(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/data-explorer.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate123.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate123.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "props"))){validate123.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate123.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate123.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate123.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate123.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate123.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate123.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.props !== undefined){let data3 = data.props;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){let missing1;if((((data3.name === undefined) && (missing1 = "name")) || ((data3.data === undefined) && (missing1 = "data"))) || ((data3.initial === undefined) && (missing1 = "initial"))){validate123.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs12 = errors;for(const key3 in data3){if(!(((key3 === "name") || (key3 === "data")) || (key3 === "initial"))){validate123.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs12 === errors){if(data3.name !== undefined){let data4 = data3.name;const _errs13 = errors;if(errors === _errs13){if(typeof data4 === "string"){if(func2(data4) > 4000){validate123.errors = [{instancePath:instancePath+"/props/name",schemaPath:"#/properties/props/properties/name/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate123.errors = [{instancePath:instancePath+"/props/name",schemaPath:"#/properties/props/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs13 === errors;}else {var valid2 = true;}if(valid2){if(data3.data !== undefined){let data5 = data3.data;const _errs15 = errors;if(errors === _errs15){if(data5 && typeof data5 == "object" && !Array.isArray(data5)){const _errs17 = errors;for(const key4 in data5){if(!((((((key4 === "bjones") || (key4 === "acook")) || (key4 === "changed")) || (key4 === "msg")) || (key4 === "results")) || (key4 === "skipped"))){validate123.errors = [{instancePath:instancePath+"/props/data",schemaPath:"#/properties/props/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs17 === errors){if(data5.bjones !== undefined){let data6 = data5.bjones;const _errs18 = errors;if(errors === _errs18){if(data6 && typeof data6 == "object" && !Array.isArray(data6)){if(Object.keys(data6).length > 30){validate123.errors = [{instancePath:instancePath+"/props/data/bjones",schemaPath:"#/properties/props/properties/data/properties/bjones/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key5 in data6){let data7 = data6[key5];const _errs21 = errors;if(errors === _errs21){if(typeof data7 === "string"){if(func2(data7) > 4000){validate123.errors = [{instancePath:instancePath+"/props/data/bjones/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/props/properties/data/properties/bjones/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate123.errors = [{instancePath:instancePath+"/props/data/bjones/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/props/properties/data/properties/bjones/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs21 === errors;if(!valid4){break;}}}}else {validate123.errors = [{instancePath:instancePath+"/props/data/bjones",schemaPath:"#/properties/props/properties/data/properties/bjones/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs18 === errors;}else {var valid3 = true;}if(valid3){if(data5.acook !== undefined){let data8 = data5.acook;const _errs23 = errors;if(errors === _errs23){if(data8 && typeof data8 == "object" && !Array.isArray(data8)){if(Object.keys(data8).length > 30){validate123.errors = [{instancePath:instancePath+"/props/data/acook",schemaPath:"#/properties/props/properties/data/properties/acook/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key6 in data8){let data9 = data8[key6];const _errs26 = errors;if(errors === _errs26){if(typeof data9 === "string"){if(func2(data9) > 4000){validate123.errors = [{instancePath:instancePath+"/props/data/acook/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/props/properties/data/properties/acook/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate123.errors = [{instancePath:instancePath+"/props/data/acook/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/props/properties/data/properties/acook/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs26 === errors;if(!valid5){break;}}}}else {validate123.errors = [{instancePath:instancePath+"/props/data/acook",schemaPath:"#/properties/props/properties/data/properties/acook/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs23 === errors;}else {var valid3 = true;}if(valid3){if(data5.changed !== undefined){const _errs28 = errors;if(typeof data5.changed !== "boolean"){validate123.errors = [{instancePath:instancePath+"/props/data/changed",schemaPath:"#/properties/props/properties/data/properties/changed/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid3 = _errs28 === errors;}else {var valid3 = true;}if(valid3){if(data5.msg !== undefined){let data11 = data5.msg;const _errs30 = errors;if(errors === _errs30){if(typeof data11 === "string"){if(func2(data11) > 4000){validate123.errors = [{instancePath:instancePath+"/props/data/msg",schemaPath:"#/properties/props/properties/data/properties/msg/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate123.errors = [{instancePath:instancePath+"/props/data/msg",schemaPath:"#/properties/props/properties/data/properties/msg/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs30 === errors;}else {var valid3 = true;}if(valid3){if(data5.results !== undefined){let data12 = data5.results;const _errs32 = errors;if(errors === _errs32){if(Array.isArray(data12)){if(data12.length > 20){validate123.errors = [{instancePath:instancePath+"/props/data/results",schemaPath:"#/properties/props/properties/data/properties/results/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid6 = true;const len0 = data12.length;for(let i0=0; i0 4000){validate123.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/ansible_loop_var",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/ansible_loop_var/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate123.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/ansible_loop_var",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/ansible_loop_var/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs37 === errors;}else {var valid7 = true;}if(valid7){if(data13.item !== undefined){let data15 = data13.item;const _errs39 = errors;if(errors === _errs39){if(typeof data15 === "string"){if(func2(data15) > 4000){validate123.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/item",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/item/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate123.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/item",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/item/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs39 === errors;}else {var valid7 = true;}if(valid7){if(data13.changed !== undefined){const _errs41 = errors;if(typeof data13.changed !== "boolean"){validate123.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/changed",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/changed/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid7 = _errs41 === errors;}else {var valid7 = true;}if(valid7){if(data13.cmd !== undefined){let data17 = data13.cmd;const _errs43 = errors;if(errors === _errs43){if(typeof data17 === "string"){if(func2(data17) > 4000){validate123.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/cmd",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/cmd/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate123.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/cmd",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/cmd/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs43 === errors;}else {var valid7 = true;}if(valid7){if(data13.rc !== undefined){let data18 = data13.rc;const _errs45 = errors;if(!(((typeof data18 == "number") && (!(data18 % 1) && !isNaN(data18))) && (isFinite(data18)))){validate123.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/rc",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/rc/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid7 = _errs45 === errors;}else {var valid7 = true;}if(valid7){if(data13.stdout !== undefined){let data19 = data13.stdout;const _errs47 = errors;if(errors === _errs47){if(typeof data19 === "string"){if(func2(data19) > 4000){validate123.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/stdout",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/stdout/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate123.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/stdout",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/stdout/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs47 === errors;}else {var valid7 = true;}if(valid7){if(data13.stdout_lines !== undefined){let data20 = data13.stdout_lines;const _errs49 = errors;if(errors === _errs49){if(Array.isArray(data20)){if(data20.length > 20){validate123.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/stdout_lines",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/stdout_lines/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid8 = true;const len1 = data20.length;for(let i1=0; i1 4000){validate123.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/stdout_lines/" + i1,schemaPath:"#/properties/props/properties/data/properties/results/items/properties/stdout_lines/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate123.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/stdout_lines/" + i1,schemaPath:"#/properties/props/properties/data/properties/results/items/properties/stdout_lines/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid8 = _errs51 === errors;if(!valid8){break;}}}}else {validate123.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/stdout_lines",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/stdout_lines/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid7 = _errs49 === errors;}else {var valid7 = true;}if(valid7){if(data13.failed !== undefined){const _errs53 = errors;if(typeof data13.failed !== "boolean"){validate123.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/failed",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/failed/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid7 = _errs53 === errors;}else {var valid7 = true;}}}}}}}}}}}else {validate123.errors = [{instancePath:instancePath+"/props/data/results/" + i0,schemaPath:"#/properties/props/properties/data/properties/results/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid6 = _errs34 === errors;if(!valid6){break;}}}}else {validate123.errors = [{instancePath:instancePath+"/props/data/results",schemaPath:"#/properties/props/properties/data/properties/results/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid3 = _errs32 === errors;}else {var valid3 = true;}if(valid3){if(data5.skipped !== undefined){const _errs55 = errors;if(typeof data5.skipped !== "boolean"){validate123.errors = [{instancePath:instancePath+"/props/data/skipped",schemaPath:"#/properties/props/properties/data/properties/skipped/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid3 = _errs55 === errors;}else {var valid3 = true;}}}}}}}}else {validate123.errors = [{instancePath:instancePath+"/props/data",schemaPath:"#/properties/props/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs15 === errors;}else {var valid2 = true;}if(valid2){if(data3.initial !== undefined){let data24 = data3.initial;const _errs57 = errors;if(errors === _errs57){if(Array.isArray(data24)){if(data24.length > 20){validate123.errors = [{instancePath:instancePath+"/props/initial",schemaPath:"#/properties/props/properties/initial/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid9 = true;const len2 = data24.length;for(let i2=0; i2 4000){const err0 = {instancePath:instancePath+"/props/initial/" + i2,schemaPath:"#/properties/props/properties/initial/items/anyOf/0/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}else {const err1 = {instancePath:instancePath+"/props/initial/" + i2,schemaPath:"#/properties/props/properties/initial/items/anyOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}var _valid0 = _errs61 === errors;valid10 = valid10 || _valid0;const _errs63 = errors;if(!(((typeof data25 == "number") && (!(data25 % 1) && !isNaN(data25))) && (isFinite(data25)))){const err2 = {instancePath:instancePath+"/props/initial/" + i2,schemaPath:"#/properties/props/properties/initial/items/anyOf/1/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}var _valid0 = _errs63 === errors;valid10 = valid10 || _valid0;if(!valid10){const err3 = {instancePath:instancePath+"/props/initial/" + i2,schemaPath:"#/properties/props/properties/initial/items/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;validate123.errors = vErrors;return false;}else {errors = _errs60;if(vErrors !== null){if(_errs60){vErrors.length = _errs60;}else {vErrors = null;}}}var valid9 = _errs59 === errors;if(!valid9){break;}}}}else {validate123.errors = [{instancePath:instancePath+"/props/initial",schemaPath:"#/properties/props/properties/initial/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs57 === errors;}else {var valid2 = true;}}}}}}else {validate123.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs10 === errors;}else {var valid0 = true;}}}}}}else {validate123.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate123.errors = vErrors;return errors === 0;}validate123.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_error_decoder = validate124;const schema194 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/error-decoder.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["errors","stages","initialSelection1"],"properties":{"errors":{"type":"array","maxItems":28,"items":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}}},"stages":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate124(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/error-decoder.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate124.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate124.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate124.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate124.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate124.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate124.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate124.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((((data2.errors === undefined) && (missing1 = "errors")) || ((data2.stages === undefined) && (missing1 = "stages"))) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate124.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(((key2 === "errors") || (key2 === "stages")) || (key2 === "initialSelection1"))){validate124.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.errors !== undefined){let data3 = data2.errors;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 28){validate124.errors = [{instancePath:instancePath+"/data/errors",schemaPath:"#/properties/data/properties/errors/maxItems",keyword:"maxItems",params:{limit: 28},message:"must NOT have more than 28 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 30){validate124.errors = [{instancePath:instancePath+"/data/errors/" + i0,schemaPath:"#/properties/data/properties/errors/items/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data4){let data5 = data4[key3];const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate124.errors = [{instancePath:instancePath+"/data/errors/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/errors/items/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate124.errors = [{instancePath:instancePath+"/data/errors/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/errors/items/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;if(!valid4){break;}}}}else {validate124.errors = [{instancePath:instancePath+"/data/errors/" + i0,schemaPath:"#/properties/data/properties/errors/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate124.errors = [{instancePath:instancePath+"/data/errors",schemaPath:"#/properties/data/properties/errors/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.stages !== undefined){let data6 = data2.stages;const _errs17 = errors;if(errors === _errs17){if(Array.isArray(data6)){if(data6.length > 20){validate124.errors = [{instancePath:instancePath+"/data/stages",schemaPath:"#/properties/data/properties/stages/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data6.length;for(let i1=0; i1 4000){validate124.errors = [{instancePath:instancePath+"/data/stages/" + i1,schemaPath:"#/properties/data/properties/stages/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate124.errors = [{instancePath:instancePath+"/data/stages/" + i1,schemaPath:"#/properties/data/properties/stages/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs19 === errors;if(!valid5){break;}}}}else {validate124.errors = [{instancePath:instancePath+"/data/stages",schemaPath:"#/properties/data/properties/stages/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data8 = data2.initialSelection1;const _errs21 = errors;if(errors === _errs21){if(typeof data8 === "string"){if(func2(data8) > 4000){validate124.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate124.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs21 === errors;}else {var valid2 = true;}}}}}}else {validate124.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate124.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate124.errors = vErrors;return errors === 0;}validate124.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_fact_gathering = validate125;const schema195 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/fact-gathering.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["modes"],"properties":{"modes":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["label","yaml","steps","facts","text"],"properties":{"label":{"type":"string","maxLength":4000},"yaml":{"type":"string","maxLength":4000},"steps":{"type":"array","maxItems":20,"items":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}}},"facts":{"type":"string","maxLength":4000},"text":{"type":"string","maxLength":4000}}}}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate125(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/fact-gathering.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate125.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate125.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate125.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate125.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate125.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate125.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate125.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.modes === undefined) && (missing1 = "modes")){validate125.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "modes")){validate125.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.modes !== undefined){let data3 = data2.modes;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate125.errors = [{instancePath:instancePath+"/data/modes",schemaPath:"#/properties/data/properties/modes/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate125.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/label",schemaPath:"#/properties/data/properties/modes/items/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate125.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/label",schemaPath:"#/properties/data/properties/modes/items/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.yaml !== undefined){let data6 = data4.yaml;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate125.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/yaml",schemaPath:"#/properties/data/properties/modes/items/properties/yaml/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate125.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/yaml",schemaPath:"#/properties/data/properties/modes/items/properties/yaml/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.steps !== undefined){let data7 = data4.steps;const _errs19 = errors;if(errors === _errs19){if(Array.isArray(data7)){if(data7.length > 20){validate125.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/steps",schemaPath:"#/properties/data/properties/modes/items/properties/steps/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data7.length;for(let i1=0; i1 30){validate125.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/steps/" + i1,schemaPath:"#/properties/data/properties/modes/items/properties/steps/items/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key4 in data8){let data9 = data8[key4];const _errs24 = errors;if(errors === _errs24){if(typeof data9 === "string"){if(func2(data9) > 4000){validate125.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/steps/" + i1+"/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/modes/items/properties/steps/items/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate125.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/steps/" + i1+"/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/modes/items/properties/steps/items/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs24 === errors;if(!valid6){break;}}}}else {validate125.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/steps/" + i1,schemaPath:"#/properties/data/properties/modes/items/properties/steps/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs21 === errors;if(!valid5){break;}}}}else {validate125.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/steps",schemaPath:"#/properties/data/properties/modes/items/properties/steps/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data4.facts !== undefined){let data10 = data4.facts;const _errs26 = errors;if(errors === _errs26){if(typeof data10 === "string"){if(func2(data10) > 4000){validate125.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/facts",schemaPath:"#/properties/data/properties/modes/items/properties/facts/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate125.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/facts",schemaPath:"#/properties/data/properties/modes/items/properties/facts/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs26 === errors;}else {var valid4 = true;}if(valid4){if(data4.text !== undefined){let data11 = data4.text;const _errs28 = errors;if(errors === _errs28){if(typeof data11 === "string"){if(func2(data11) > 4000){validate125.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/text",schemaPath:"#/properties/data/properties/modes/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate125.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/text",schemaPath:"#/properties/data/properties/modes/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs28 === errors;}else {var valid4 = true;}}}}}}}}else {validate125.errors = [{instancePath:instancePath+"/data/modes/" + i0,schemaPath:"#/properties/data/properties/modes/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate125.errors = [{instancePath:instancePath+"/data/modes",schemaPath:"#/properties/data/properties/modes/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate125.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data12 = data.dependencies;const _errs30 = errors;if(errors === _errs30){if(data12 && typeof data12 == "object" && !Array.isArray(data12)){for(const key5 in data12){const _errs32 = errors;if(typeof key5 === "string"){if(!pattern82.test(key5)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key5};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid7 = _errs32 === errors;if(!valid7){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key5},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate125.errors = vErrors;return false;break;}}if(valid7){for(const key6 in data12){let data13 = data12[key6];const _errs34 = errors;if(errors === _errs34){if(data13 && typeof data13 == "object" && !Array.isArray(data13)){const _errs36 = errors;for(const key7 in data13){if(!((key7 === "text") || (key7 === "data"))){validate125.errors = [{instancePath:instancePath+"/dependencies/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key7},message:"must NOT have additional properties"}];return false;break;}}if(_errs36 === errors){if(data13.text !== undefined){let data14 = data13.text;const _errs37 = errors;if(errors === _errs37){if(data14 && typeof data14 == "object" && !Array.isArray(data14)){for(const key8 in data14){let data15 = data14[key8];const _errs40 = errors;if(errors === _errs40){if(typeof data15 === "string"){if(func2(data15) > 4000){validate125.errors = [{instancePath:instancePath+"/dependencies/" + key6.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key8.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate125.errors = [{instancePath:instancePath+"/dependencies/" + key6.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key8.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid10 = _errs40 === errors;if(!valid10){break;}}}else {validate125.errors = [{instancePath:instancePath+"/dependencies/" + key6.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid9 = _errs37 === errors;}else {var valid9 = true;}if(valid9){if(data13.data !== undefined){let data16 = data13.data;const _errs42 = errors;if(!(data16 && typeof data16 == "object" && !Array.isArray(data16))){validate125.errors = [{instancePath:instancePath+"/dependencies/" + key6.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid9 = _errs42 === errors;}else {var valid9 = true;}}}}else {validate125.errors = [{instancePath:instancePath+"/dependencies/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid8 = _errs34 === errors;if(!valid8){break;}}}}else {validate125.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs30 === errors;}else {var valid0 = true;}}}}}}else {validate125.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate125.errors = vErrors;return errors === 0;}validate125.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_facts_explorer = validate126;const schema196 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/facts-explorer.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","additionalProperties":false},"data":{"type":"object","additionalProperties":false,"required":["sampleFacts"],"properties":{"sampleFacts":{"type":"object","additionalProperties":false,"required":["hostname","fqdn","domain","distribution","distribution_version","distribution_major_version","os_family","kernel","architecture","python_version","processor_count","processor_vcpus","memtotal_mb","memfree_mb","default_ipv4","all_ipv4_addresses","interfaces","dns","devices","selinux","virtualization_role","ansible_local"],"properties":{"hostname":{"type":"string","maxLength":4000},"fqdn":{"type":"string","maxLength":4000},"domain":{"type":"string","maxLength":4000},"distribution":{"type":"string","maxLength":4000},"distribution_version":{"type":"string","maxLength":4000},"distribution_major_version":{"type":"string","maxLength":4000},"os_family":{"type":"string","maxLength":4000},"kernel":{"type":"string","maxLength":4000},"architecture":{"type":"string","maxLength":4000},"python_version":{"type":"string","maxLength":4000},"processor_count":{"type":"integer"},"processor_vcpus":{"type":"integer"},"memtotal_mb":{"type":"integer"},"memfree_mb":{"type":"integer"},"default_ipv4":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"all_ipv4_addresses":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"interfaces":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"dns":{"type":"object","additionalProperties":false,"required":["nameservers","search"],"properties":{"nameservers":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"search":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}},"devices":{"type":"object","additionalProperties":false,"required":["vda"],"properties":{"vda":{"type":"object","additionalProperties":false,"required":["size","partitions"],"properties":{"size":{"type":"string","maxLength":4000},"partitions":{"type":"object","additionalProperties":false,"required":["vda1","vda4"],"properties":{"vda1":{"type":"object","additionalProperties":false,"required":["size"],"properties":{"size":{"type":"string","maxLength":4000}}},"vda4":{"type":"object","additionalProperties":false,"required":["size"],"properties":{"size":{"type":"string","maxLength":4000}}}}}}}}},"selinux":{"type":"object","additionalProperties":false,"required":["status","mode"],"properties":{"status":{"type":"string","maxLength":4000},"mode":{"type":"string","maxLength":4000}}},"virtualization_role":{"type":"string","maxLength":4000},"ansible_local":{"type":"object","additionalProperties":false}}}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};const func1 = Object.prototype.hasOwnProperty;function validate126(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/facts-explorer.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate126.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate126.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate126.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){for(const key1 in data0){validate126.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}else {validate126.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data1 = data.data;const _errs5 = errors;if(errors === _errs5){if(data1 && typeof data1 == "object" && !Array.isArray(data1)){let missing1;if((data1.sampleFacts === undefined) && (missing1 = "sampleFacts")){validate126.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs7 = errors;for(const key2 in data1){if(!(key2 === "sampleFacts")){validate126.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs7 === errors){if(data1.sampleFacts !== undefined){let data2 = data1.sampleFacts;const _errs8 = errors;if(errors === _errs8){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing2;if(((((((((((((((((((((((data2.hostname === undefined) && (missing2 = "hostname")) || ((data2.fqdn === undefined) && (missing2 = "fqdn"))) || ((data2.domain === undefined) && (missing2 = "domain"))) || ((data2.distribution === undefined) && (missing2 = "distribution"))) || ((data2.distribution_version === undefined) && (missing2 = "distribution_version"))) || ((data2.distribution_major_version === undefined) && (missing2 = "distribution_major_version"))) || ((data2.os_family === undefined) && (missing2 = "os_family"))) || ((data2.kernel === undefined) && (missing2 = "kernel"))) || ((data2.architecture === undefined) && (missing2 = "architecture"))) || ((data2.python_version === undefined) && (missing2 = "python_version"))) || ((data2.processor_count === undefined) && (missing2 = "processor_count"))) || ((data2.processor_vcpus === undefined) && (missing2 = "processor_vcpus"))) || ((data2.memtotal_mb === undefined) && (missing2 = "memtotal_mb"))) || ((data2.memfree_mb === undefined) && (missing2 = "memfree_mb"))) || ((data2.default_ipv4 === undefined) && (missing2 = "default_ipv4"))) || ((data2.all_ipv4_addresses === undefined) && (missing2 = "all_ipv4_addresses"))) || ((data2.interfaces === undefined) && (missing2 = "interfaces"))) || ((data2.dns === undefined) && (missing2 = "dns"))) || ((data2.devices === undefined) && (missing2 = "devices"))) || ((data2.selinux === undefined) && (missing2 = "selinux"))) || ((data2.virtualization_role === undefined) && (missing2 = "virtualization_role"))) || ((data2.ansible_local === undefined) && (missing2 = "ansible_local"))){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts",schemaPath:"#/properties/data/properties/sampleFacts/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs10 = errors;for(const key3 in data2){if(!(func1.call(schema196.properties.data.properties.sampleFacts.properties, key3))){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts",schemaPath:"#/properties/data/properties/sampleFacts/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs10 === errors){if(data2.hostname !== undefined){let data3 = data2.hostname;const _errs11 = errors;if(errors === _errs11){if(typeof data3 === "string"){if(func2(data3) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/hostname",schemaPath:"#/properties/data/properties/sampleFacts/properties/hostname/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/hostname",schemaPath:"#/properties/data/properties/sampleFacts/properties/hostname/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs11 === errors;}else {var valid2 = true;}if(valid2){if(data2.fqdn !== undefined){let data4 = data2.fqdn;const _errs13 = errors;if(errors === _errs13){if(typeof data4 === "string"){if(func2(data4) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/fqdn",schemaPath:"#/properties/data/properties/sampleFacts/properties/fqdn/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/fqdn",schemaPath:"#/properties/data/properties/sampleFacts/properties/fqdn/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs13 === errors;}else {var valid2 = true;}if(valid2){if(data2.domain !== undefined){let data5 = data2.domain;const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/domain",schemaPath:"#/properties/data/properties/sampleFacts/properties/domain/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/domain",schemaPath:"#/properties/data/properties/sampleFacts/properties/domain/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs15 === errors;}else {var valid2 = true;}if(valid2){if(data2.distribution !== undefined){let data6 = data2.distribution;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/distribution",schemaPath:"#/properties/data/properties/sampleFacts/properties/distribution/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/distribution",schemaPath:"#/properties/data/properties/sampleFacts/properties/distribution/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}if(valid2){if(data2.distribution_version !== undefined){let data7 = data2.distribution_version;const _errs19 = errors;if(errors === _errs19){if(typeof data7 === "string"){if(func2(data7) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/distribution_version",schemaPath:"#/properties/data/properties/sampleFacts/properties/distribution_version/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/distribution_version",schemaPath:"#/properties/data/properties/sampleFacts/properties/distribution_version/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs19 === errors;}else {var valid2 = true;}if(valid2){if(data2.distribution_major_version !== undefined){let data8 = data2.distribution_major_version;const _errs21 = errors;if(errors === _errs21){if(typeof data8 === "string"){if(func2(data8) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/distribution_major_version",schemaPath:"#/properties/data/properties/sampleFacts/properties/distribution_major_version/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/distribution_major_version",schemaPath:"#/properties/data/properties/sampleFacts/properties/distribution_major_version/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs21 === errors;}else {var valid2 = true;}if(valid2){if(data2.os_family !== undefined){let data9 = data2.os_family;const _errs23 = errors;if(errors === _errs23){if(typeof data9 === "string"){if(func2(data9) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/os_family",schemaPath:"#/properties/data/properties/sampleFacts/properties/os_family/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/os_family",schemaPath:"#/properties/data/properties/sampleFacts/properties/os_family/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs23 === errors;}else {var valid2 = true;}if(valid2){if(data2.kernel !== undefined){let data10 = data2.kernel;const _errs25 = errors;if(errors === _errs25){if(typeof data10 === "string"){if(func2(data10) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/kernel",schemaPath:"#/properties/data/properties/sampleFacts/properties/kernel/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/kernel",schemaPath:"#/properties/data/properties/sampleFacts/properties/kernel/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs25 === errors;}else {var valid2 = true;}if(valid2){if(data2.architecture !== undefined){let data11 = data2.architecture;const _errs27 = errors;if(errors === _errs27){if(typeof data11 === "string"){if(func2(data11) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/architecture",schemaPath:"#/properties/data/properties/sampleFacts/properties/architecture/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/architecture",schemaPath:"#/properties/data/properties/sampleFacts/properties/architecture/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs27 === errors;}else {var valid2 = true;}if(valid2){if(data2.python_version !== undefined){let data12 = data2.python_version;const _errs29 = errors;if(errors === _errs29){if(typeof data12 === "string"){if(func2(data12) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/python_version",schemaPath:"#/properties/data/properties/sampleFacts/properties/python_version/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/python_version",schemaPath:"#/properties/data/properties/sampleFacts/properties/python_version/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs29 === errors;}else {var valid2 = true;}if(valid2){if(data2.processor_count !== undefined){let data13 = data2.processor_count;const _errs31 = errors;if(!(((typeof data13 == "number") && (!(data13 % 1) && !isNaN(data13))) && (isFinite(data13)))){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/processor_count",schemaPath:"#/properties/data/properties/sampleFacts/properties/processor_count/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid2 = _errs31 === errors;}else {var valid2 = true;}if(valid2){if(data2.processor_vcpus !== undefined){let data14 = data2.processor_vcpus;const _errs33 = errors;if(!(((typeof data14 == "number") && (!(data14 % 1) && !isNaN(data14))) && (isFinite(data14)))){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/processor_vcpus",schemaPath:"#/properties/data/properties/sampleFacts/properties/processor_vcpus/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid2 = _errs33 === errors;}else {var valid2 = true;}if(valid2){if(data2.memtotal_mb !== undefined){let data15 = data2.memtotal_mb;const _errs35 = errors;if(!(((typeof data15 == "number") && (!(data15 % 1) && !isNaN(data15))) && (isFinite(data15)))){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/memtotal_mb",schemaPath:"#/properties/data/properties/sampleFacts/properties/memtotal_mb/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid2 = _errs35 === errors;}else {var valid2 = true;}if(valid2){if(data2.memfree_mb !== undefined){let data16 = data2.memfree_mb;const _errs37 = errors;if(!(((typeof data16 == "number") && (!(data16 % 1) && !isNaN(data16))) && (isFinite(data16)))){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/memfree_mb",schemaPath:"#/properties/data/properties/sampleFacts/properties/memfree_mb/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid2 = _errs37 === errors;}else {var valid2 = true;}if(valid2){if(data2.default_ipv4 !== undefined){let data17 = data2.default_ipv4;const _errs39 = errors;if(errors === _errs39){if(data17 && typeof data17 == "object" && !Array.isArray(data17)){if(Object.keys(data17).length > 30){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/default_ipv4",schemaPath:"#/properties/data/properties/sampleFacts/properties/default_ipv4/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key4 in data17){let data18 = data17[key4];const _errs42 = errors;if(errors === _errs42){if(typeof data18 === "string"){if(func2(data18) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/default_ipv4/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/sampleFacts/properties/default_ipv4/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/default_ipv4/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/sampleFacts/properties/default_ipv4/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs42 === errors;if(!valid3){break;}}}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/default_ipv4",schemaPath:"#/properties/data/properties/sampleFacts/properties/default_ipv4/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs39 === errors;}else {var valid2 = true;}if(valid2){if(data2.all_ipv4_addresses !== undefined){let data19 = data2.all_ipv4_addresses;const _errs44 = errors;if(errors === _errs44){if(Array.isArray(data19)){if(data19.length > 20){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/all_ipv4_addresses",schemaPath:"#/properties/data/properties/sampleFacts/properties/all_ipv4_addresses/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid4 = true;const len0 = data19.length;for(let i0=0; i0 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/all_ipv4_addresses/" + i0,schemaPath:"#/properties/data/properties/sampleFacts/properties/all_ipv4_addresses/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/all_ipv4_addresses/" + i0,schemaPath:"#/properties/data/properties/sampleFacts/properties/all_ipv4_addresses/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs46 === errors;if(!valid4){break;}}}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/all_ipv4_addresses",schemaPath:"#/properties/data/properties/sampleFacts/properties/all_ipv4_addresses/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs44 === errors;}else {var valid2 = true;}if(valid2){if(data2.interfaces !== undefined){let data21 = data2.interfaces;const _errs48 = errors;if(errors === _errs48){if(Array.isArray(data21)){if(data21.length > 20){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/interfaces",schemaPath:"#/properties/data/properties/sampleFacts/properties/interfaces/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data21.length;for(let i1=0; i1 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/interfaces/" + i1,schemaPath:"#/properties/data/properties/sampleFacts/properties/interfaces/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/interfaces/" + i1,schemaPath:"#/properties/data/properties/sampleFacts/properties/interfaces/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs50 === errors;if(!valid5){break;}}}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/interfaces",schemaPath:"#/properties/data/properties/sampleFacts/properties/interfaces/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs48 === errors;}else {var valid2 = true;}if(valid2){if(data2.dns !== undefined){let data23 = data2.dns;const _errs52 = errors;if(errors === _errs52){if(data23 && typeof data23 == "object" && !Array.isArray(data23)){let missing3;if(((data23.nameservers === undefined) && (missing3 = "nameservers")) || ((data23.search === undefined) && (missing3 = "search"))){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/dns",schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs54 = errors;for(const key5 in data23){if(!((key5 === "nameservers") || (key5 === "search"))){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/dns",schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs54 === errors){if(data23.nameservers !== undefined){let data24 = data23.nameservers;const _errs55 = errors;if(errors === _errs55){if(Array.isArray(data24)){if(data24.length > 20){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/dns/nameservers",schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/properties/nameservers/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid7 = true;const len2 = data24.length;for(let i2=0; i2 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/dns/nameservers/" + i2,schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/properties/nameservers/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/dns/nameservers/" + i2,schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/properties/nameservers/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs57 === errors;if(!valid7){break;}}}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/dns/nameservers",schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/properties/nameservers/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid6 = _errs55 === errors;}else {var valid6 = true;}if(valid6){if(data23.search !== undefined){let data26 = data23.search;const _errs59 = errors;if(errors === _errs59){if(Array.isArray(data26)){if(data26.length > 20){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/dns/search",schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/properties/search/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid8 = true;const len3 = data26.length;for(let i3=0; i3 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/dns/search/" + i3,schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/properties/search/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/dns/search/" + i3,schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/properties/search/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid8 = _errs61 === errors;if(!valid8){break;}}}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/dns/search",schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/properties/search/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid6 = _errs59 === errors;}else {var valid6 = true;}}}}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/dns",schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs52 === errors;}else {var valid2 = true;}if(valid2){if(data2.devices !== undefined){let data28 = data2.devices;const _errs63 = errors;if(errors === _errs63){if(data28 && typeof data28 == "object" && !Array.isArray(data28)){let missing4;if((data28.vda === undefined) && (missing4 = "vda")){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/required",keyword:"required",params:{missingProperty: missing4},message:"must have required property '"+missing4+"'"}];return false;}else {const _errs65 = errors;for(const key6 in data28){if(!(key6 === "vda")){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"}];return false;break;}}if(_errs65 === errors){if(data28.vda !== undefined){let data29 = data28.vda;const _errs66 = errors;if(errors === _errs66){if(data29 && typeof data29 == "object" && !Array.isArray(data29)){let missing5;if(((data29.size === undefined) && (missing5 = "size")) || ((data29.partitions === undefined) && (missing5 = "partitions"))){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/required",keyword:"required",params:{missingProperty: missing5},message:"must have required property '"+missing5+"'"}];return false;}else {const _errs68 = errors;for(const key7 in data29){if(!((key7 === "size") || (key7 === "partitions"))){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key7},message:"must NOT have additional properties"}];return false;break;}}if(_errs68 === errors){if(data29.size !== undefined){let data30 = data29.size;const _errs69 = errors;if(errors === _errs69){if(typeof data30 === "string"){if(func2(data30) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/size",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/size/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/size",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/size/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid10 = _errs69 === errors;}else {var valid10 = true;}if(valid10){if(data29.partitions !== undefined){let data31 = data29.partitions;const _errs71 = errors;if(errors === _errs71){if(data31 && typeof data31 == "object" && !Array.isArray(data31)){let missing6;if(((data31.vda1 === undefined) && (missing6 = "vda1")) || ((data31.vda4 === undefined) && (missing6 = "vda4"))){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/required",keyword:"required",params:{missingProperty: missing6},message:"must have required property '"+missing6+"'"}];return false;}else {const _errs73 = errors;for(const key8 in data31){if(!((key8 === "vda1") || (key8 === "vda4"))){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key8},message:"must NOT have additional properties"}];return false;break;}}if(_errs73 === errors){if(data31.vda1 !== undefined){let data32 = data31.vda1;const _errs74 = errors;if(errors === _errs74){if(data32 && typeof data32 == "object" && !Array.isArray(data32)){let missing7;if((data32.size === undefined) && (missing7 = "size")){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda1",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda1/required",keyword:"required",params:{missingProperty: missing7},message:"must have required property '"+missing7+"'"}];return false;}else {const _errs76 = errors;for(const key9 in data32){if(!(key9 === "size")){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda1",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda1/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key9},message:"must NOT have additional properties"}];return false;break;}}if(_errs76 === errors){if(data32.size !== undefined){let data33 = data32.size;const _errs77 = errors;if(errors === _errs77){if(typeof data33 === "string"){if(func2(data33) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda1/size",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda1/properties/size/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda1/size",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda1/properties/size/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda1",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda1/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid11 = _errs74 === errors;}else {var valid11 = true;}if(valid11){if(data31.vda4 !== undefined){let data34 = data31.vda4;const _errs79 = errors;if(errors === _errs79){if(data34 && typeof data34 == "object" && !Array.isArray(data34)){let missing8;if((data34.size === undefined) && (missing8 = "size")){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda4",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda4/required",keyword:"required",params:{missingProperty: missing8},message:"must have required property '"+missing8+"'"}];return false;}else {const _errs81 = errors;for(const key10 in data34){if(!(key10 === "size")){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda4",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda4/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key10},message:"must NOT have additional properties"}];return false;break;}}if(_errs81 === errors){if(data34.size !== undefined){let data35 = data34.size;const _errs82 = errors;if(errors === _errs82){if(typeof data35 === "string"){if(func2(data35) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda4/size",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda4/properties/size/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda4/size",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda4/properties/size/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda4",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda4/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid11 = _errs79 === errors;}else {var valid11 = true;}}}}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs71 === errors;}else {var valid10 = true;}}}}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}}}}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/devices",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs63 === errors;}else {var valid2 = true;}if(valid2){if(data2.selinux !== undefined){let data36 = data2.selinux;const _errs84 = errors;if(errors === _errs84){if(data36 && typeof data36 == "object" && !Array.isArray(data36)){let missing9;if(((data36.status === undefined) && (missing9 = "status")) || ((data36.mode === undefined) && (missing9 = "mode"))){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/selinux",schemaPath:"#/properties/data/properties/sampleFacts/properties/selinux/required",keyword:"required",params:{missingProperty: missing9},message:"must have required property '"+missing9+"'"}];return false;}else {const _errs86 = errors;for(const key11 in data36){if(!((key11 === "status") || (key11 === "mode"))){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/selinux",schemaPath:"#/properties/data/properties/sampleFacts/properties/selinux/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key11},message:"must NOT have additional properties"}];return false;break;}}if(_errs86 === errors){if(data36.status !== undefined){let data37 = data36.status;const _errs87 = errors;if(errors === _errs87){if(typeof data37 === "string"){if(func2(data37) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/selinux/status",schemaPath:"#/properties/data/properties/sampleFacts/properties/selinux/properties/status/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/selinux/status",schemaPath:"#/properties/data/properties/sampleFacts/properties/selinux/properties/status/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid14 = _errs87 === errors;}else {var valid14 = true;}if(valid14){if(data36.mode !== undefined){let data38 = data36.mode;const _errs89 = errors;if(errors === _errs89){if(typeof data38 === "string"){if(func2(data38) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/selinux/mode",schemaPath:"#/properties/data/properties/sampleFacts/properties/selinux/properties/mode/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/selinux/mode",schemaPath:"#/properties/data/properties/sampleFacts/properties/selinux/properties/mode/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid14 = _errs89 === errors;}else {var valid14 = true;}}}}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/selinux",schemaPath:"#/properties/data/properties/sampleFacts/properties/selinux/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs84 === errors;}else {var valid2 = true;}if(valid2){if(data2.virtualization_role !== undefined){let data39 = data2.virtualization_role;const _errs91 = errors;if(errors === _errs91){if(typeof data39 === "string"){if(func2(data39) > 4000){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/virtualization_role",schemaPath:"#/properties/data/properties/sampleFacts/properties/virtualization_role/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/virtualization_role",schemaPath:"#/properties/data/properties/sampleFacts/properties/virtualization_role/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs91 === errors;}else {var valid2 = true;}if(valid2){if(data2.ansible_local !== undefined){let data40 = data2.ansible_local;const _errs93 = errors;if(errors === _errs93){if(data40 && typeof data40 == "object" && !Array.isArray(data40)){for(const key12 in data40){validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/ansible_local",schemaPath:"#/properties/data/properties/sampleFacts/properties/ansible_local/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key12},message:"must NOT have additional properties"}];return false;break;}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts/ansible_local",schemaPath:"#/properties/data/properties/sampleFacts/properties/ansible_local/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs93 === errors;}else {var valid2 = true;}}}}}}}}}}}}}}}}}}}}}}}}}else {validate126.errors = [{instancePath:instancePath+"/data/sampleFacts",schemaPath:"#/properties/data/properties/sampleFacts/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}}}}}else {validate126.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data41 = data.dependencies;const _errs96 = errors;if(errors === _errs96){if(data41 && typeof data41 == "object" && !Array.isArray(data41)){for(const key13 in data41){const _errs98 = errors;if(typeof key13 === "string"){if(!pattern82.test(key13)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key13};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid15 = _errs98 === errors;if(!valid15){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key13},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate126.errors = vErrors;return false;break;}}if(valid15){for(const key14 in data41){let data42 = data41[key14];const _errs100 = errors;if(errors === _errs100){if(data42 && typeof data42 == "object" && !Array.isArray(data42)){const _errs102 = errors;for(const key15 in data42){if(!((key15 === "text") || (key15 === "data"))){validate126.errors = [{instancePath:instancePath+"/dependencies/" + key14.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key15},message:"must NOT have additional properties"}];return false;break;}}if(_errs102 === errors){if(data42.text !== undefined){let data43 = data42.text;const _errs103 = errors;if(errors === _errs103){if(data43 && typeof data43 == "object" && !Array.isArray(data43)){for(const key16 in data43){let data44 = data43[key16];const _errs106 = errors;if(errors === _errs106){if(typeof data44 === "string"){if(func2(data44) > 4000){validate126.errors = [{instancePath:instancePath+"/dependencies/" + key14.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key16.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate126.errors = [{instancePath:instancePath+"/dependencies/" + key14.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key16.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid18 = _errs106 === errors;if(!valid18){break;}}}else {validate126.errors = [{instancePath:instancePath+"/dependencies/" + key14.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid17 = _errs103 === errors;}else {var valid17 = true;}if(valid17){if(data42.data !== undefined){let data45 = data42.data;const _errs108 = errors;if(!(data45 && typeof data45 == "object" && !Array.isArray(data45))){validate126.errors = [{instancePath:instancePath+"/dependencies/" + key14.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid17 = _errs108 === errors;}else {var valid17 = true;}}}}else {validate126.errors = [{instancePath:instancePath+"/dependencies/" + key14.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid16 = _errs100 === errors;if(!valid16){break;}}}}else {validate126.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs96 === errors;}else {var valid0 = true;}}}}}}else {validate126.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate126.errors = vErrors;return errors === 0;}validate126.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_fetch_layout = validate127;const schema197 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/fetch-layout.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":51,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["hosts"],"properties":{"hosts":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate127(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/fetch-layout.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate127.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate127.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate127.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 51){validate127.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 51},message:"must NOT have more than 51 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate127.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate127.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate127.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.hosts === undefined) && (missing1 = "hosts")){validate127.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "hosts")){validate127.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.hosts !== undefined){let data3 = data2.hosts;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate127.errors = [{instancePath:instancePath+"/data/hosts",schemaPath:"#/properties/data/properties/hosts/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate127.errors = [{instancePath:instancePath+"/data/hosts/" + i0,schemaPath:"#/properties/data/properties/hosts/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate127.errors = [{instancePath:instancePath+"/data/hosts/" + i0,schemaPath:"#/properties/data/properties/hosts/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate127.errors = [{instancePath:instancePath+"/data/hosts",schemaPath:"#/properties/data/properties/hosts/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate127.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data5 = data.dependencies;const _errs14 = errors;if(errors === _errs14){if(data5 && typeof data5 == "object" && !Array.isArray(data5)){for(const key3 in data5){const _errs16 = errors;if(typeof key3 === "string"){if(!pattern82.test(key3)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key3};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid4 = _errs16 === errors;if(!valid4){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key3},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate127.errors = vErrors;return false;break;}}if(valid4){for(const key4 in data5){let data6 = data5[key4];const _errs18 = errors;if(errors === _errs18){if(data6 && typeof data6 == "object" && !Array.isArray(data6)){const _errs20 = errors;for(const key5 in data6){if(!((key5 === "text") || (key5 === "data"))){validate127.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs20 === errors){if(data6.text !== undefined){let data7 = data6.text;const _errs21 = errors;if(errors === _errs21){if(data7 && typeof data7 == "object" && !Array.isArray(data7)){for(const key6 in data7){let data8 = data7[key6];const _errs24 = errors;if(errors === _errs24){if(typeof data8 === "string"){if(func2(data8) > 4000){validate127.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate127.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs24 === errors;if(!valid7){break;}}}else {validate127.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid6 = _errs21 === errors;}else {var valid6 = true;}if(valid6){if(data6.data !== undefined){let data9 = data6.data;const _errs26 = errors;if(!(data9 && typeof data9 == "object" && !Array.isArray(data9))){validate127.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid6 = _errs26 === errors;}else {var valid6 = true;}}}}else {validate127.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs18 === errors;if(!valid5){break;}}}}else {validate127.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs14 === errors;}else {var valid0 = true;}}}}}}else {validate127.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate127.errors = vErrors;return errors === 0;}validate127.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_file_edit_simulator = validate128;const schema198 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/file-edit-simulator.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":36,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["start","begin","end","modes","initialSelection1"],"properties":{"start":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"begin":{"type":"string","maxLength":4000},"end":{"type":"string","maxLength":4000},"modes":{"type":"object","additionalProperties":false,"required":["append","replace","block"],"properties":{"append":{"type":"object","additionalProperties":false,"required":["label","hint","line","regexp"],"properties":{"label":{"type":"string","maxLength":4000},"hint":{"type":"string","maxLength":4000},"line":{"type":"string","maxLength":4000},"regexp":{"type":"null"}}},"replace":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"block":{"type":"object","additionalProperties":false,"required":["label","hint","line","regexp"],"properties":{"label":{"type":"string","maxLength":4000},"hint":{"type":"string","maxLength":4000},"line":{"type":"string","maxLength":4000},"regexp":{"type":"null"}}}}},"initialSelection1":{"type":"string","maxLength":4000}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate128(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/file-edit-simulator.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate128.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate128.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate128.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 36){validate128.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 36},message:"must NOT have more than 36 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate128.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate128.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((((((data2.start === undefined) && (missing1 = "start")) || ((data2.begin === undefined) && (missing1 = "begin"))) || ((data2.end === undefined) && (missing1 = "end"))) || ((data2.modes === undefined) && (missing1 = "modes"))) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate128.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(((((key2 === "start") || (key2 === "begin")) || (key2 === "end")) || (key2 === "modes")) || (key2 === "initialSelection1"))){validate128.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.start !== undefined){let data3 = data2.start;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate128.errors = [{instancePath:instancePath+"/data/start",schemaPath:"#/properties/data/properties/start/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate128.errors = [{instancePath:instancePath+"/data/start/" + i0,schemaPath:"#/properties/data/properties/start/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/data/start/" + i0,schemaPath:"#/properties/data/properties/start/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate128.errors = [{instancePath:instancePath+"/data/start",schemaPath:"#/properties/data/properties/start/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.begin !== undefined){let data5 = data2.begin;const _errs14 = errors;if(errors === _errs14){if(typeof data5 === "string"){if(func2(data5) > 4000){validate128.errors = [{instancePath:instancePath+"/data/begin",schemaPath:"#/properties/data/properties/begin/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/data/begin",schemaPath:"#/properties/data/properties/begin/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs14 === errors;}else {var valid2 = true;}if(valid2){if(data2.end !== undefined){let data6 = data2.end;const _errs16 = errors;if(errors === _errs16){if(typeof data6 === "string"){if(func2(data6) > 4000){validate128.errors = [{instancePath:instancePath+"/data/end",schemaPath:"#/properties/data/properties/end/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/data/end",schemaPath:"#/properties/data/properties/end/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs16 === errors;}else {var valid2 = true;}if(valid2){if(data2.modes !== undefined){let data7 = data2.modes;const _errs18 = errors;if(errors === _errs18){if(data7 && typeof data7 == "object" && !Array.isArray(data7)){let missing2;if((((data7.append === undefined) && (missing2 = "append")) || ((data7.replace === undefined) && (missing2 = "replace"))) || ((data7.block === undefined) && (missing2 = "block"))){validate128.errors = [{instancePath:instancePath+"/data/modes",schemaPath:"#/properties/data/properties/modes/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs20 = errors;for(const key3 in data7){if(!(((key3 === "append") || (key3 === "replace")) || (key3 === "block"))){validate128.errors = [{instancePath:instancePath+"/data/modes",schemaPath:"#/properties/data/properties/modes/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs20 === errors){if(data7.append !== undefined){let data8 = data7.append;const _errs21 = errors;if(errors === _errs21){if(data8 && typeof data8 == "object" && !Array.isArray(data8)){let missing3;if(((((data8.label === undefined) && (missing3 = "label")) || ((data8.hint === undefined) && (missing3 = "hint"))) || ((data8.line === undefined) && (missing3 = "line"))) || ((data8.regexp === undefined) && (missing3 = "regexp"))){validate128.errors = [{instancePath:instancePath+"/data/modes/append",schemaPath:"#/properties/data/properties/modes/properties/append/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs23 = errors;for(const key4 in data8){if(!((((key4 === "label") || (key4 === "hint")) || (key4 === "line")) || (key4 === "regexp"))){validate128.errors = [{instancePath:instancePath+"/data/modes/append",schemaPath:"#/properties/data/properties/modes/properties/append/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs23 === errors){if(data8.label !== undefined){let data9 = data8.label;const _errs24 = errors;if(errors === _errs24){if(typeof data9 === "string"){if(func2(data9) > 4000){validate128.errors = [{instancePath:instancePath+"/data/modes/append/label",schemaPath:"#/properties/data/properties/modes/properties/append/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/data/modes/append/label",schemaPath:"#/properties/data/properties/modes/properties/append/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs24 === errors;}else {var valid5 = true;}if(valid5){if(data8.hint !== undefined){let data10 = data8.hint;const _errs26 = errors;if(errors === _errs26){if(typeof data10 === "string"){if(func2(data10) > 4000){validate128.errors = [{instancePath:instancePath+"/data/modes/append/hint",schemaPath:"#/properties/data/properties/modes/properties/append/properties/hint/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/data/modes/append/hint",schemaPath:"#/properties/data/properties/modes/properties/append/properties/hint/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs26 === errors;}else {var valid5 = true;}if(valid5){if(data8.line !== undefined){let data11 = data8.line;const _errs28 = errors;if(errors === _errs28){if(typeof data11 === "string"){if(func2(data11) > 4000){validate128.errors = [{instancePath:instancePath+"/data/modes/append/line",schemaPath:"#/properties/data/properties/modes/properties/append/properties/line/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/data/modes/append/line",schemaPath:"#/properties/data/properties/modes/properties/append/properties/line/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs28 === errors;}else {var valid5 = true;}if(valid5){if(data8.regexp !== undefined){const _errs30 = errors;if(data8.regexp !== null){validate128.errors = [{instancePath:instancePath+"/data/modes/append/regexp",schemaPath:"#/properties/data/properties/modes/properties/append/properties/regexp/type",keyword:"type",params:{type: "null"},message:"must be null"}];return false;}var valid5 = _errs30 === errors;}else {var valid5 = true;}}}}}}}else {validate128.errors = [{instancePath:instancePath+"/data/modes/append",schemaPath:"#/properties/data/properties/modes/properties/append/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid4 = _errs21 === errors;}else {var valid4 = true;}if(valid4){if(data7.replace !== undefined){let data13 = data7.replace;const _errs32 = errors;if(errors === _errs32){if(data13 && typeof data13 == "object" && !Array.isArray(data13)){if(Object.keys(data13).length > 30){validate128.errors = [{instancePath:instancePath+"/data/modes/replace",schemaPath:"#/properties/data/properties/modes/properties/replace/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key5 in data13){let data14 = data13[key5];const _errs35 = errors;if(errors === _errs35){if(typeof data14 === "string"){if(func2(data14) > 4000){validate128.errors = [{instancePath:instancePath+"/data/modes/replace/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/modes/properties/replace/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/data/modes/replace/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/modes/properties/replace/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs35 === errors;if(!valid6){break;}}}}else {validate128.errors = [{instancePath:instancePath+"/data/modes/replace",schemaPath:"#/properties/data/properties/modes/properties/replace/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid4 = _errs32 === errors;}else {var valid4 = true;}if(valid4){if(data7.block !== undefined){let data15 = data7.block;const _errs37 = errors;if(errors === _errs37){if(data15 && typeof data15 == "object" && !Array.isArray(data15)){let missing4;if(((((data15.label === undefined) && (missing4 = "label")) || ((data15.hint === undefined) && (missing4 = "hint"))) || ((data15.line === undefined) && (missing4 = "line"))) || ((data15.regexp === undefined) && (missing4 = "regexp"))){validate128.errors = [{instancePath:instancePath+"/data/modes/block",schemaPath:"#/properties/data/properties/modes/properties/block/required",keyword:"required",params:{missingProperty: missing4},message:"must have required property '"+missing4+"'"}];return false;}else {const _errs39 = errors;for(const key6 in data15){if(!((((key6 === "label") || (key6 === "hint")) || (key6 === "line")) || (key6 === "regexp"))){validate128.errors = [{instancePath:instancePath+"/data/modes/block",schemaPath:"#/properties/data/properties/modes/properties/block/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"}];return false;break;}}if(_errs39 === errors){if(data15.label !== undefined){let data16 = data15.label;const _errs40 = errors;if(errors === _errs40){if(typeof data16 === "string"){if(func2(data16) > 4000){validate128.errors = [{instancePath:instancePath+"/data/modes/block/label",schemaPath:"#/properties/data/properties/modes/properties/block/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/data/modes/block/label",schemaPath:"#/properties/data/properties/modes/properties/block/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs40 === errors;}else {var valid7 = true;}if(valid7){if(data15.hint !== undefined){let data17 = data15.hint;const _errs42 = errors;if(errors === _errs42){if(typeof data17 === "string"){if(func2(data17) > 4000){validate128.errors = [{instancePath:instancePath+"/data/modes/block/hint",schemaPath:"#/properties/data/properties/modes/properties/block/properties/hint/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/data/modes/block/hint",schemaPath:"#/properties/data/properties/modes/properties/block/properties/hint/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs42 === errors;}else {var valid7 = true;}if(valid7){if(data15.line !== undefined){let data18 = data15.line;const _errs44 = errors;if(errors === _errs44){if(typeof data18 === "string"){if(func2(data18) > 4000){validate128.errors = [{instancePath:instancePath+"/data/modes/block/line",schemaPath:"#/properties/data/properties/modes/properties/block/properties/line/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/data/modes/block/line",schemaPath:"#/properties/data/properties/modes/properties/block/properties/line/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs44 === errors;}else {var valid7 = true;}if(valid7){if(data15.regexp !== undefined){const _errs46 = errors;if(data15.regexp !== null){validate128.errors = [{instancePath:instancePath+"/data/modes/block/regexp",schemaPath:"#/properties/data/properties/modes/properties/block/properties/regexp/type",keyword:"type",params:{type: "null"},message:"must be null"}];return false;}var valid7 = _errs46 === errors;}else {var valid7 = true;}}}}}}}else {validate128.errors = [{instancePath:instancePath+"/data/modes/block",schemaPath:"#/properties/data/properties/modes/properties/block/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid4 = _errs37 === errors;}else {var valid4 = true;}}}}}}else {validate128.errors = [{instancePath:instancePath+"/data/modes",schemaPath:"#/properties/data/properties/modes/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs18 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data20 = data2.initialSelection1;const _errs48 = errors;if(errors === _errs48){if(typeof data20 === "string"){if(func2(data20) > 4000){validate128.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs48 === errors;}else {var valid2 = true;}}}}}}}}else {validate128.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data21 = data.dependencies;const _errs50 = errors;if(errors === _errs50){if(data21 && typeof data21 == "object" && !Array.isArray(data21)){for(const key7 in data21){const _errs52 = errors;if(typeof key7 === "string"){if(!pattern82.test(key7)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key7};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid8 = _errs52 === errors;if(!valid8){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key7},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate128.errors = vErrors;return false;break;}}if(valid8){for(const key8 in data21){let data22 = data21[key8];const _errs54 = errors;if(errors === _errs54){if(data22 && typeof data22 == "object" && !Array.isArray(data22)){const _errs56 = errors;for(const key9 in data22){if(!((key9 === "text") || (key9 === "data"))){validate128.errors = [{instancePath:instancePath+"/dependencies/" + key8.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key9},message:"must NOT have additional properties"}];return false;break;}}if(_errs56 === errors){if(data22.text !== undefined){let data23 = data22.text;const _errs57 = errors;if(errors === _errs57){if(data23 && typeof data23 == "object" && !Array.isArray(data23)){for(const key10 in data23){let data24 = data23[key10];const _errs60 = errors;if(errors === _errs60){if(typeof data24 === "string"){if(func2(data24) > 4000){validate128.errors = [{instancePath:instancePath+"/dependencies/" + key8.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key10.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/dependencies/" + key8.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key10.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid11 = _errs60 === errors;if(!valid11){break;}}}else {validate128.errors = [{instancePath:instancePath+"/dependencies/" + key8.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs57 === errors;}else {var valid10 = true;}if(valid10){if(data22.data !== undefined){let data25 = data22.data;const _errs62 = errors;if(!(data25 && typeof data25 == "object" && !Array.isArray(data25))){validate128.errors = [{instancePath:instancePath+"/dependencies/" + key8.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid10 = _errs62 === errors;}else {var valid10 = true;}}}}else {validate128.errors = [{instancePath:instancePath+"/dependencies/" + key8.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid9 = _errs54 === errors;if(!valid9){break;}}}}else {validate128.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs50 === errors;}else {var valid0 = true;}}}}}}else {validate128.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate128.errors = vErrors;return errors === 0;}validate128.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_file_module_chooser = validate129;const schema199 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/file-module-chooser.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["goals","initialSelection1"],"properties":{"goals":{"type":"array","maxItems":24,"items":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}}},"initialSelection1":{"type":"string","maxLength":4000}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate129(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/file-module-chooser.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate129.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate129.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate129.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate129.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate129.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate129.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate129.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.goals === undefined) && (missing1 = "goals")) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate129.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "goals") || (key2 === "initialSelection1"))){validate129.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.goals !== undefined){let data3 = data2.goals;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 24){validate129.errors = [{instancePath:instancePath+"/data/goals",schemaPath:"#/properties/data/properties/goals/maxItems",keyword:"maxItems",params:{limit: 24},message:"must NOT have more than 24 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 30){validate129.errors = [{instancePath:instancePath+"/data/goals/" + i0,schemaPath:"#/properties/data/properties/goals/items/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data4){let data5 = data4[key3];const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate129.errors = [{instancePath:instancePath+"/data/goals/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/goals/items/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate129.errors = [{instancePath:instancePath+"/data/goals/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/goals/items/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;if(!valid4){break;}}}}else {validate129.errors = [{instancePath:instancePath+"/data/goals/" + i0,schemaPath:"#/properties/data/properties/goals/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate129.errors = [{instancePath:instancePath+"/data/goals",schemaPath:"#/properties/data/properties/goals/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data6 = data2.initialSelection1;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate129.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate129.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}}}}}else {validate129.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data7 = data.dependencies;const _errs19 = errors;if(errors === _errs19){if(data7 && typeof data7 == "object" && !Array.isArray(data7)){for(const key4 in data7){const _errs21 = errors;if(typeof key4 === "string"){if(!pattern82.test(key4)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key4};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid5 = _errs21 === errors;if(!valid5){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key4},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate129.errors = vErrors;return false;break;}}if(valid5){for(const key5 in data7){let data8 = data7[key5];const _errs23 = errors;if(errors === _errs23){if(data8 && typeof data8 == "object" && !Array.isArray(data8)){const _errs25 = errors;for(const key6 in data8){if(!((key6 === "text") || (key6 === "data"))){validate129.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"}];return false;break;}}if(_errs25 === errors){if(data8.text !== undefined){let data9 = data8.text;const _errs26 = errors;if(errors === _errs26){if(data9 && typeof data9 == "object" && !Array.isArray(data9)){for(const key7 in data9){let data10 = data9[key7];const _errs29 = errors;if(errors === _errs29){if(typeof data10 === "string"){if(func2(data10) > 4000){validate129.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate129.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid8 = _errs29 === errors;if(!valid8){break;}}}else {validate129.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid7 = _errs26 === errors;}else {var valid7 = true;}if(valid7){if(data8.data !== undefined){let data11 = data8.data;const _errs31 = errors;if(!(data11 && typeof data11 == "object" && !Array.isArray(data11))){validate129.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid7 = _errs31 === errors;}else {var valid7 = true;}}}}else {validate129.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid6 = _errs23 === errors;if(!valid6){break;}}}}else {validate129.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs19 === errors;}else {var valid0 = true;}}}}}}else {validate129.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate129.errors = vErrors;return errors === 0;}validate129.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_fqcn_explorer = validate130;const schema200 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/fqcn-explorer.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":51,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["samples","paths"],"properties":{"samples":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["name","kind"],"properties":{"name":{"type":"string","maxLength":4000},"kind":{"type":"string","maxLength":4000},"builtin":{"type":"boolean"}}}},"paths":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}}};function validate130(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/fqcn-explorer.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate130.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate130.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate130.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 51){validate130.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 51},message:"must NOT have more than 51 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate130.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate130.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate130.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.samples === undefined) && (missing1 = "samples")) || ((data2.paths === undefined) && (missing1 = "paths"))){validate130.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "samples") || (key2 === "paths"))){validate130.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.samples !== undefined){let data3 = data2.samples;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate130.errors = [{instancePath:instancePath+"/data/samples",schemaPath:"#/properties/data/properties/samples/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate130.errors = [{instancePath:instancePath+"/data/samples/" + i0+"/name",schemaPath:"#/properties/data/properties/samples/items/properties/name/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate130.errors = [{instancePath:instancePath+"/data/samples/" + i0+"/name",schemaPath:"#/properties/data/properties/samples/items/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.kind !== undefined){let data6 = data4.kind;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate130.errors = [{instancePath:instancePath+"/data/samples/" + i0+"/kind",schemaPath:"#/properties/data/properties/samples/items/properties/kind/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate130.errors = [{instancePath:instancePath+"/data/samples/" + i0+"/kind",schemaPath:"#/properties/data/properties/samples/items/properties/kind/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.builtin !== undefined){const _errs19 = errors;if(typeof data4.builtin !== "boolean"){validate130.errors = [{instancePath:instancePath+"/data/samples/" + i0+"/builtin",schemaPath:"#/properties/data/properties/samples/items/properties/builtin/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs19 === errors;}else {var valid4 = true;}}}}}}else {validate130.errors = [{instancePath:instancePath+"/data/samples/" + i0,schemaPath:"#/properties/data/properties/samples/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate130.errors = [{instancePath:instancePath+"/data/samples",schemaPath:"#/properties/data/properties/samples/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.paths !== undefined){let data8 = data2.paths;const _errs21 = errors;if(errors === _errs21){if(Array.isArray(data8)){if(data8.length > 20){validate130.errors = [{instancePath:instancePath+"/data/paths",schemaPath:"#/properties/data/properties/paths/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data8.length;for(let i1=0; i1 4000){validate130.errors = [{instancePath:instancePath+"/data/paths/" + i1,schemaPath:"#/properties/data/properties/paths/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate130.errors = [{instancePath:instancePath+"/data/paths/" + i1,schemaPath:"#/properties/data/properties/paths/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs23 === errors;if(!valid5){break;}}}}else {validate130.errors = [{instancePath:instancePath+"/data/paths",schemaPath:"#/properties/data/properties/paths/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs21 === errors;}else {var valid2 = true;}}}}}else {validate130.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate130.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate130.errors = vErrors;return errors === 0;}validate130.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_glob_tester = validate131;const schema201 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/glob-tester.schema.json","type":"object","additionalProperties":false,"required":["text","data","props"],"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false},"props":{"type":"object","additionalProperties":false,"required":["files"],"properties":{"title":{"type":"string","maxLength":200},"command":{"type":"string","maxLength":60},"initial":{"type":"string","maxLength":200},"files":{"type":"array","minItems":1,"maxItems":80,"items":{"type":"string","minLength":1,"maxLength":120,"pattern":"^[^/]+$"}},"presets":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["pattern"],"properties":{"pattern":{"type":"string","minLength":1,"maxLength":200},"note":{"type":"string","maxLength":600}}}}}}}};const pattern129 = new RegExp("^[^/]+$", "u");function validate131(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/glob-tester.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate131.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))) || ((data.props === undefined) && (missing0 = "props"))){validate131.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "props"))){validate131.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate131.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate131.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}else {validate131.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate131.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate131.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.props !== undefined){let data3 = data.props;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){let missing1;if((data3.files === undefined) && (missing1 = "files")){validate131.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs12 = errors;for(const key3 in data3){if(!(((((key3 === "title") || (key3 === "command")) || (key3 === "initial")) || (key3 === "files")) || (key3 === "presets"))){validate131.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs12 === errors){if(data3.title !== undefined){let data4 = data3.title;const _errs13 = errors;if(errors === _errs13){if(typeof data4 === "string"){if(func2(data4) > 200){validate131.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}}else {validate131.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs13 === errors;}else {var valid2 = true;}if(valid2){if(data3.command !== undefined){let data5 = data3.command;const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 60){validate131.errors = [{instancePath:instancePath+"/props/command",schemaPath:"#/properties/props/properties/command/maxLength",keyword:"maxLength",params:{limit: 60},message:"must NOT have more than 60 characters"}];return false;}}else {validate131.errors = [{instancePath:instancePath+"/props/command",schemaPath:"#/properties/props/properties/command/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs15 === errors;}else {var valid2 = true;}if(valid2){if(data3.initial !== undefined){let data6 = data3.initial;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 200){validate131.errors = [{instancePath:instancePath+"/props/initial",schemaPath:"#/properties/props/properties/initial/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}}else {validate131.errors = [{instancePath:instancePath+"/props/initial",schemaPath:"#/properties/props/properties/initial/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}if(valid2){if(data3.files !== undefined){let data7 = data3.files;const _errs19 = errors;if(errors === _errs19){if(Array.isArray(data7)){if(data7.length > 80){validate131.errors = [{instancePath:instancePath+"/props/files",schemaPath:"#/properties/props/properties/files/maxItems",keyword:"maxItems",params:{limit: 80},message:"must NOT have more than 80 items"}];return false;}else {if(data7.length < 1){validate131.errors = [{instancePath:instancePath+"/props/files",schemaPath:"#/properties/props/properties/files/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid3 = true;const len0 = data7.length;for(let i0=0; i0 120){validate131.errors = [{instancePath:instancePath+"/props/files/" + i0,schemaPath:"#/properties/props/properties/files/items/maxLength",keyword:"maxLength",params:{limit: 120},message:"must NOT have more than 120 characters"}];return false;}else {if(func2(data8) < 1){validate131.errors = [{instancePath:instancePath+"/props/files/" + i0,schemaPath:"#/properties/props/properties/files/items/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}else {if(!pattern129.test(data8)){validate131.errors = [{instancePath:instancePath+"/props/files/" + i0,schemaPath:"#/properties/props/properties/files/items/pattern",keyword:"pattern",params:{pattern: "^[^/]+$"},message:"must match pattern \""+"^[^/]+$"+"\""}];return false;}}}}else {validate131.errors = [{instancePath:instancePath+"/props/files/" + i0,schemaPath:"#/properties/props/properties/files/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs21 === errors;if(!valid3){break;}}}}}else {validate131.errors = [{instancePath:instancePath+"/props/files",schemaPath:"#/properties/props/properties/files/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs19 === errors;}else {var valid2 = true;}if(valid2){if(data3.presets !== undefined){let data9 = data3.presets;const _errs23 = errors;if(errors === _errs23){if(Array.isArray(data9)){if(data9.length > 20){validate131.errors = [{instancePath:instancePath+"/props/presets",schemaPath:"#/properties/props/properties/presets/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid4 = true;const len1 = data9.length;for(let i1=0; i1 200){validate131.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/pattern",schemaPath:"#/properties/props/properties/presets/items/properties/pattern/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}else {if(func2(data11) < 1){validate131.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/pattern",schemaPath:"#/properties/props/properties/presets/items/properties/pattern/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate131.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/pattern",schemaPath:"#/properties/props/properties/presets/items/properties/pattern/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs28 === errors;}else {var valid5 = true;}if(valid5){if(data10.note !== undefined){let data12 = data10.note;const _errs30 = errors;if(errors === _errs30){if(typeof data12 === "string"){if(func2(data12) > 600){validate131.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/note",schemaPath:"#/properties/props/properties/presets/items/properties/note/maxLength",keyword:"maxLength",params:{limit: 600},message:"must NOT have more than 600 characters"}];return false;}}else {validate131.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/note",schemaPath:"#/properties/props/properties/presets/items/properties/note/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs30 === errors;}else {var valid5 = true;}}}}}else {validate131.errors = [{instancePath:instancePath+"/props/presets/" + i1,schemaPath:"#/properties/props/properties/presets/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid4 = _errs25 === errors;if(!valid4){break;}}}}else {validate131.errors = [{instancePath:instancePath+"/props/presets",schemaPath:"#/properties/props/properties/presets/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs23 === errors;}else {var valid2 = true;}}}}}}}}else {validate131.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs10 === errors;}else {var valid0 = true;}}}}}}else {validate131.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate131.errors = vErrors;return errors === 0;}validate131.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_grep_tester = validate132;const schema202 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/grep-tester.schema.json","type":"object","additionalProperties":false,"required":["text","data","props"],"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false},"props":{"type":"object","additionalProperties":false,"required":["lines"],"properties":{"title":{"type":"string","maxLength":200},"file":{"type":"string","maxLength":120,"pattern":"^[^\\s]+$"},"lines":{"type":"array","minItems":1,"maxItems":60,"items":{"type":"string","maxLength":300}},"presets":{"type":"array","maxItems":24,"items":{"type":"object","additionalProperties":false,"required":["pattern"],"properties":{"pattern":{"type":"string","maxLength":200},"flags":{"type":"string","pattern":"^[ivEn]{0,4}$"},"note":{"type":"string","maxLength":600}}}}}}}};const pattern130 = new RegExp("^[^\\s]+$", "u");const pattern131 = new RegExp("^[ivEn]{0,4}$", "u");function validate132(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/grep-tester.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate132.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))) || ((data.props === undefined) && (missing0 = "props"))){validate132.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "props"))){validate132.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate132.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate132.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}else {validate132.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate132.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate132.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.props !== undefined){let data3 = data.props;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){let missing1;if((data3.lines === undefined) && (missing1 = "lines")){validate132.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs12 = errors;for(const key3 in data3){if(!((((key3 === "title") || (key3 === "file")) || (key3 === "lines")) || (key3 === "presets"))){validate132.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs12 === errors){if(data3.title !== undefined){let data4 = data3.title;const _errs13 = errors;if(errors === _errs13){if(typeof data4 === "string"){if(func2(data4) > 200){validate132.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}}else {validate132.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs13 === errors;}else {var valid2 = true;}if(valid2){if(data3.file !== undefined){let data5 = data3.file;const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 120){validate132.errors = [{instancePath:instancePath+"/props/file",schemaPath:"#/properties/props/properties/file/maxLength",keyword:"maxLength",params:{limit: 120},message:"must NOT have more than 120 characters"}];return false;}else {if(!pattern130.test(data5)){validate132.errors = [{instancePath:instancePath+"/props/file",schemaPath:"#/properties/props/properties/file/pattern",keyword:"pattern",params:{pattern: "^[^\\s]+$"},message:"must match pattern \""+"^[^\\s]+$"+"\""}];return false;}}}else {validate132.errors = [{instancePath:instancePath+"/props/file",schemaPath:"#/properties/props/properties/file/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs15 === errors;}else {var valid2 = true;}if(valid2){if(data3.lines !== undefined){let data6 = data3.lines;const _errs17 = errors;if(errors === _errs17){if(Array.isArray(data6)){if(data6.length > 60){validate132.errors = [{instancePath:instancePath+"/props/lines",schemaPath:"#/properties/props/properties/lines/maxItems",keyword:"maxItems",params:{limit: 60},message:"must NOT have more than 60 items"}];return false;}else {if(data6.length < 1){validate132.errors = [{instancePath:instancePath+"/props/lines",schemaPath:"#/properties/props/properties/lines/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid3 = true;const len0 = data6.length;for(let i0=0; i0 300){validate132.errors = [{instancePath:instancePath+"/props/lines/" + i0,schemaPath:"#/properties/props/properties/lines/items/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}}else {validate132.errors = [{instancePath:instancePath+"/props/lines/" + i0,schemaPath:"#/properties/props/properties/lines/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs19 === errors;if(!valid3){break;}}}}}else {validate132.errors = [{instancePath:instancePath+"/props/lines",schemaPath:"#/properties/props/properties/lines/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}if(valid2){if(data3.presets !== undefined){let data8 = data3.presets;const _errs21 = errors;if(errors === _errs21){if(Array.isArray(data8)){if(data8.length > 24){validate132.errors = [{instancePath:instancePath+"/props/presets",schemaPath:"#/properties/props/properties/presets/maxItems",keyword:"maxItems",params:{limit: 24},message:"must NOT have more than 24 items"}];return false;}else {var valid4 = true;const len1 = data8.length;for(let i1=0; i1 200){validate132.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/pattern",schemaPath:"#/properties/props/properties/presets/items/properties/pattern/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}}else {validate132.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/pattern",schemaPath:"#/properties/props/properties/presets/items/properties/pattern/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs26 === errors;}else {var valid5 = true;}if(valid5){if(data9.flags !== undefined){let data11 = data9.flags;const _errs28 = errors;if(errors === _errs28){if(typeof data11 === "string"){if(!pattern131.test(data11)){validate132.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/flags",schemaPath:"#/properties/props/properties/presets/items/properties/flags/pattern",keyword:"pattern",params:{pattern: "^[ivEn]{0,4}$"},message:"must match pattern \""+"^[ivEn]{0,4}$"+"\""}];return false;}}else {validate132.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/flags",schemaPath:"#/properties/props/properties/presets/items/properties/flags/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs28 === errors;}else {var valid5 = true;}if(valid5){if(data9.note !== undefined){let data12 = data9.note;const _errs30 = errors;if(errors === _errs30){if(typeof data12 === "string"){if(func2(data12) > 600){validate132.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/note",schemaPath:"#/properties/props/properties/presets/items/properties/note/maxLength",keyword:"maxLength",params:{limit: 600},message:"must NOT have more than 600 characters"}];return false;}}else {validate132.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/note",schemaPath:"#/properties/props/properties/presets/items/properties/note/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs30 === errors;}else {var valid5 = true;}}}}}}else {validate132.errors = [{instancePath:instancePath+"/props/presets/" + i1,schemaPath:"#/properties/props/properties/presets/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid4 = _errs23 === errors;if(!valid4){break;}}}}else {validate132.errors = [{instancePath:instancePath+"/props/presets",schemaPath:"#/properties/props/properties/presets/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs21 === errors;}else {var valid2 = true;}}}}}}}else {validate132.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs10 === errors;}else {var valid0 = true;}}}}}}else {validate132.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate132.errors = vErrors;return errors === 0;}validate132.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_group_vars_resolver = validate133;const schema203 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/group-vars-resolver.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":42,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["files","hosts","initialSelection1"],"properties":{"files":{"type":"object","additionalProperties":false,"required":["group_vars/datacenters","group_vars/datacenter1","group_vars/datacenter2","host_vars/demo1.example.com","host_vars/demo2.example.com","host_vars/demo3.example.com","host_vars/demo4.example.com"],"properties":{"group_vars/datacenters":{"type":"object","additionalProperties":false,"required":["kind","group","value","rank"],"properties":{"kind":{"type":"string","maxLength":4000},"group":{"type":"string","maxLength":4000},"value":{"type":"string","maxLength":4000},"rank":{"type":"integer"}}},"group_vars/datacenter1":{"type":"object","additionalProperties":false,"required":["kind","group","value","rank"],"properties":{"kind":{"type":"string","maxLength":4000},"group":{"type":"string","maxLength":4000},"value":{"type":"string","maxLength":4000},"rank":{"type":"integer"}}},"group_vars/datacenter2":{"type":"object","additionalProperties":false,"required":["kind","group","value","rank"],"properties":{"kind":{"type":"string","maxLength":4000},"group":{"type":"string","maxLength":4000},"value":{"type":"string","maxLength":4000},"rank":{"type":"integer"}}},"host_vars/demo1.example.com":{"type":"object","additionalProperties":false,"required":["kind","host","value","rank"],"properties":{"kind":{"type":"string","maxLength":4000},"host":{"type":"string","maxLength":4000},"value":{"type":"string","maxLength":4000},"rank":{"type":"integer"}}},"host_vars/demo2.example.com":{"type":"object","additionalProperties":false,"required":["kind","host","value","rank"],"properties":{"kind":{"type":"string","maxLength":4000},"host":{"type":"string","maxLength":4000},"value":{"type":"string","maxLength":4000},"rank":{"type":"integer"}}},"host_vars/demo3.example.com":{"type":"object","additionalProperties":false,"required":["kind","host","value","rank"],"properties":{"kind":{"type":"string","maxLength":4000},"host":{"type":"string","maxLength":4000},"value":{"type":"string","maxLength":4000},"rank":{"type":"integer"}}},"host_vars/demo4.example.com":{"type":"object","additionalProperties":false,"required":["kind","host","value","rank"],"properties":{"kind":{"type":"string","maxLength":4000},"host":{"type":"string","maxLength":4000},"value":{"type":"string","maxLength":4000},"rank":{"type":"integer"}}}}},"hosts":{"type":"object","maxProperties":30,"additionalProperties":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}},"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate133(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/group-vars-resolver.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate133.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate133.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate133.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 42){validate133.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 42},message:"must NOT have more than 42 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate133.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate133.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((((data2.files === undefined) && (missing1 = "files")) || ((data2.hosts === undefined) && (missing1 = "hosts"))) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate133.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(((key2 === "files") || (key2 === "hosts")) || (key2 === "initialSelection1"))){validate133.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.files !== undefined){let data3 = data2.files;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){let missing2;if((((((((data3["group_vars/datacenters"] === undefined) && (missing2 = "group_vars/datacenters")) || ((data3["group_vars/datacenter1"] === undefined) && (missing2 = "group_vars/datacenter1"))) || ((data3["group_vars/datacenter2"] === undefined) && (missing2 = "group_vars/datacenter2"))) || ((data3["host_vars/demo1.example.com"] === undefined) && (missing2 = "host_vars/demo1.example.com"))) || ((data3["host_vars/demo2.example.com"] === undefined) && (missing2 = "host_vars/demo2.example.com"))) || ((data3["host_vars/demo3.example.com"] === undefined) && (missing2 = "host_vars/demo3.example.com"))) || ((data3["host_vars/demo4.example.com"] === undefined) && (missing2 = "host_vars/demo4.example.com"))){validate133.errors = [{instancePath:instancePath+"/data/files",schemaPath:"#/properties/data/properties/files/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs12 = errors;for(const key3 in data3){if(!(((((((key3 === "group_vars/datacenters") || (key3 === "group_vars/datacenter1")) || (key3 === "group_vars/datacenter2")) || (key3 === "host_vars/demo1.example.com")) || (key3 === "host_vars/demo2.example.com")) || (key3 === "host_vars/demo3.example.com")) || (key3 === "host_vars/demo4.example.com"))){validate133.errors = [{instancePath:instancePath+"/data/files",schemaPath:"#/properties/data/properties/files/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs12 === errors){if(data3["group_vars/datacenters"] !== undefined){let data4 = data3["group_vars/datacenters"];const _errs13 = errors;if(errors === _errs13){if(data4 && typeof data4 == "object" && !Array.isArray(data4)){let missing3;if(((((data4.kind === undefined) && (missing3 = "kind")) || ((data4.group === undefined) && (missing3 = "group"))) || ((data4.value === undefined) && (missing3 = "value"))) || ((data4.rank === undefined) && (missing3 = "rank"))){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs15 = errors;for(const key4 in data4){if(!((((key4 === "kind") || (key4 === "group")) || (key4 === "value")) || (key4 === "rank"))){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs15 === errors){if(data4.kind !== undefined){let data5 = data4.kind;const _errs16 = errors;if(errors === _errs16){if(typeof data5 === "string"){if(func2(data5) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters/kind",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/properties/kind/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters/kind",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/properties/kind/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs16 === errors;}else {var valid4 = true;}if(valid4){if(data4.group !== undefined){let data6 = data4.group;const _errs18 = errors;if(errors === _errs18){if(typeof data6 === "string"){if(func2(data6) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters/group",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/properties/group/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters/group",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/properties/group/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs18 === errors;}else {var valid4 = true;}if(valid4){if(data4.value !== undefined){let data7 = data4.value;const _errs20 = errors;if(errors === _errs20){if(typeof data7 === "string"){if(func2(data7) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters/value",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/properties/value/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters/value",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs20 === errors;}else {var valid4 = true;}if(valid4){if(data4.rank !== undefined){let data8 = data4.rank;const _errs22 = errors;if(!(((typeof data8 == "number") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters/rank",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/properties/rank/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs22 === errors;}else {var valid4 = true;}}}}}}}else {validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs13 === errors;}else {var valid3 = true;}if(valid3){if(data3["group_vars/datacenter1"] !== undefined){let data9 = data3["group_vars/datacenter1"];const _errs24 = errors;if(errors === _errs24){if(data9 && typeof data9 == "object" && !Array.isArray(data9)){let missing4;if(((((data9.kind === undefined) && (missing4 = "kind")) || ((data9.group === undefined) && (missing4 = "group"))) || ((data9.value === undefined) && (missing4 = "value"))) || ((data9.rank === undefined) && (missing4 = "rank"))){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/required",keyword:"required",params:{missingProperty: missing4},message:"must have required property '"+missing4+"'"}];return false;}else {const _errs26 = errors;for(const key5 in data9){if(!((((key5 === "kind") || (key5 === "group")) || (key5 === "value")) || (key5 === "rank"))){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs26 === errors){if(data9.kind !== undefined){let data10 = data9.kind;const _errs27 = errors;if(errors === _errs27){if(typeof data10 === "string"){if(func2(data10) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1/kind",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/properties/kind/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1/kind",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/properties/kind/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs27 === errors;}else {var valid5 = true;}if(valid5){if(data9.group !== undefined){let data11 = data9.group;const _errs29 = errors;if(errors === _errs29){if(typeof data11 === "string"){if(func2(data11) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1/group",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/properties/group/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1/group",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/properties/group/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs29 === errors;}else {var valid5 = true;}if(valid5){if(data9.value !== undefined){let data12 = data9.value;const _errs31 = errors;if(errors === _errs31){if(typeof data12 === "string"){if(func2(data12) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1/value",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/properties/value/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1/value",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs31 === errors;}else {var valid5 = true;}if(valid5){if(data9.rank !== undefined){let data13 = data9.rank;const _errs33 = errors;if(!(((typeof data13 == "number") && (!(data13 % 1) && !isNaN(data13))) && (isFinite(data13)))){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1/rank",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/properties/rank/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid5 = _errs33 === errors;}else {var valid5 = true;}}}}}}}else {validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs24 === errors;}else {var valid3 = true;}if(valid3){if(data3["group_vars/datacenter2"] !== undefined){let data14 = data3["group_vars/datacenter2"];const _errs35 = errors;if(errors === _errs35){if(data14 && typeof data14 == "object" && !Array.isArray(data14)){let missing5;if(((((data14.kind === undefined) && (missing5 = "kind")) || ((data14.group === undefined) && (missing5 = "group"))) || ((data14.value === undefined) && (missing5 = "value"))) || ((data14.rank === undefined) && (missing5 = "rank"))){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/required",keyword:"required",params:{missingProperty: missing5},message:"must have required property '"+missing5+"'"}];return false;}else {const _errs37 = errors;for(const key6 in data14){if(!((((key6 === "kind") || (key6 === "group")) || (key6 === "value")) || (key6 === "rank"))){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"}];return false;break;}}if(_errs37 === errors){if(data14.kind !== undefined){let data15 = data14.kind;const _errs38 = errors;if(errors === _errs38){if(typeof data15 === "string"){if(func2(data15) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2/kind",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/properties/kind/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2/kind",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/properties/kind/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs38 === errors;}else {var valid6 = true;}if(valid6){if(data14.group !== undefined){let data16 = data14.group;const _errs40 = errors;if(errors === _errs40){if(typeof data16 === "string"){if(func2(data16) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2/group",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/properties/group/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2/group",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/properties/group/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs40 === errors;}else {var valid6 = true;}if(valid6){if(data14.value !== undefined){let data17 = data14.value;const _errs42 = errors;if(errors === _errs42){if(typeof data17 === "string"){if(func2(data17) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2/value",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/properties/value/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2/value",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs42 === errors;}else {var valid6 = true;}if(valid6){if(data14.rank !== undefined){let data18 = data14.rank;const _errs44 = errors;if(!(((typeof data18 == "number") && (!(data18 % 1) && !isNaN(data18))) && (isFinite(data18)))){validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2/rank",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/properties/rank/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid6 = _errs44 === errors;}else {var valid6 = true;}}}}}}}else {validate133.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs35 === errors;}else {var valid3 = true;}if(valid3){if(data3["host_vars/demo1.example.com"] !== undefined){let data19 = data3["host_vars/demo1.example.com"];const _errs46 = errors;if(errors === _errs46){if(data19 && typeof data19 == "object" && !Array.isArray(data19)){let missing6;if(((((data19.kind === undefined) && (missing6 = "kind")) || ((data19.host === undefined) && (missing6 = "host"))) || ((data19.value === undefined) && (missing6 = "value"))) || ((data19.rank === undefined) && (missing6 = "rank"))){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/required",keyword:"required",params:{missingProperty: missing6},message:"must have required property '"+missing6+"'"}];return false;}else {const _errs48 = errors;for(const key7 in data19){if(!((((key7 === "kind") || (key7 === "host")) || (key7 === "value")) || (key7 === "rank"))){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key7},message:"must NOT have additional properties"}];return false;break;}}if(_errs48 === errors){if(data19.kind !== undefined){let data20 = data19.kind;const _errs49 = errors;if(errors === _errs49){if(typeof data20 === "string"){if(func2(data20) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com/kind",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/properties/kind/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com/kind",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/properties/kind/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs49 === errors;}else {var valid7 = true;}if(valid7){if(data19.host !== undefined){let data21 = data19.host;const _errs51 = errors;if(errors === _errs51){if(typeof data21 === "string"){if(func2(data21) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com/host",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/properties/host/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com/host",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/properties/host/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs51 === errors;}else {var valid7 = true;}if(valid7){if(data19.value !== undefined){let data22 = data19.value;const _errs53 = errors;if(errors === _errs53){if(typeof data22 === "string"){if(func2(data22) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com/value",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/properties/value/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com/value",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs53 === errors;}else {var valid7 = true;}if(valid7){if(data19.rank !== undefined){let data23 = data19.rank;const _errs55 = errors;if(!(((typeof data23 == "number") && (!(data23 % 1) && !isNaN(data23))) && (isFinite(data23)))){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com/rank",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/properties/rank/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid7 = _errs55 === errors;}else {var valid7 = true;}}}}}}}else {validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs46 === errors;}else {var valid3 = true;}if(valid3){if(data3["host_vars/demo2.example.com"] !== undefined){let data24 = data3["host_vars/demo2.example.com"];const _errs57 = errors;if(errors === _errs57){if(data24 && typeof data24 == "object" && !Array.isArray(data24)){let missing7;if(((((data24.kind === undefined) && (missing7 = "kind")) || ((data24.host === undefined) && (missing7 = "host"))) || ((data24.value === undefined) && (missing7 = "value"))) || ((data24.rank === undefined) && (missing7 = "rank"))){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/required",keyword:"required",params:{missingProperty: missing7},message:"must have required property '"+missing7+"'"}];return false;}else {const _errs59 = errors;for(const key8 in data24){if(!((((key8 === "kind") || (key8 === "host")) || (key8 === "value")) || (key8 === "rank"))){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key8},message:"must NOT have additional properties"}];return false;break;}}if(_errs59 === errors){if(data24.kind !== undefined){let data25 = data24.kind;const _errs60 = errors;if(errors === _errs60){if(typeof data25 === "string"){if(func2(data25) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com/kind",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/properties/kind/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com/kind",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/properties/kind/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid8 = _errs60 === errors;}else {var valid8 = true;}if(valid8){if(data24.host !== undefined){let data26 = data24.host;const _errs62 = errors;if(errors === _errs62){if(typeof data26 === "string"){if(func2(data26) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com/host",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/properties/host/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com/host",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/properties/host/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid8 = _errs62 === errors;}else {var valid8 = true;}if(valid8){if(data24.value !== undefined){let data27 = data24.value;const _errs64 = errors;if(errors === _errs64){if(typeof data27 === "string"){if(func2(data27) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com/value",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/properties/value/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com/value",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid8 = _errs64 === errors;}else {var valid8 = true;}if(valid8){if(data24.rank !== undefined){let data28 = data24.rank;const _errs66 = errors;if(!(((typeof data28 == "number") && (!(data28 % 1) && !isNaN(data28))) && (isFinite(data28)))){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com/rank",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/properties/rank/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid8 = _errs66 === errors;}else {var valid8 = true;}}}}}}}else {validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs57 === errors;}else {var valid3 = true;}if(valid3){if(data3["host_vars/demo3.example.com"] !== undefined){let data29 = data3["host_vars/demo3.example.com"];const _errs68 = errors;if(errors === _errs68){if(data29 && typeof data29 == "object" && !Array.isArray(data29)){let missing8;if(((((data29.kind === undefined) && (missing8 = "kind")) || ((data29.host === undefined) && (missing8 = "host"))) || ((data29.value === undefined) && (missing8 = "value"))) || ((data29.rank === undefined) && (missing8 = "rank"))){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/required",keyword:"required",params:{missingProperty: missing8},message:"must have required property '"+missing8+"'"}];return false;}else {const _errs70 = errors;for(const key9 in data29){if(!((((key9 === "kind") || (key9 === "host")) || (key9 === "value")) || (key9 === "rank"))){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key9},message:"must NOT have additional properties"}];return false;break;}}if(_errs70 === errors){if(data29.kind !== undefined){let data30 = data29.kind;const _errs71 = errors;if(errors === _errs71){if(typeof data30 === "string"){if(func2(data30) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com/kind",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/properties/kind/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com/kind",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/properties/kind/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid9 = _errs71 === errors;}else {var valid9 = true;}if(valid9){if(data29.host !== undefined){let data31 = data29.host;const _errs73 = errors;if(errors === _errs73){if(typeof data31 === "string"){if(func2(data31) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com/host",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/properties/host/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com/host",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/properties/host/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid9 = _errs73 === errors;}else {var valid9 = true;}if(valid9){if(data29.value !== undefined){let data32 = data29.value;const _errs75 = errors;if(errors === _errs75){if(typeof data32 === "string"){if(func2(data32) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com/value",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/properties/value/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com/value",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid9 = _errs75 === errors;}else {var valid9 = true;}if(valid9){if(data29.rank !== undefined){let data33 = data29.rank;const _errs77 = errors;if(!(((typeof data33 == "number") && (!(data33 % 1) && !isNaN(data33))) && (isFinite(data33)))){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com/rank",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/properties/rank/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid9 = _errs77 === errors;}else {var valid9 = true;}}}}}}}else {validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs68 === errors;}else {var valid3 = true;}if(valid3){if(data3["host_vars/demo4.example.com"] !== undefined){let data34 = data3["host_vars/demo4.example.com"];const _errs79 = errors;if(errors === _errs79){if(data34 && typeof data34 == "object" && !Array.isArray(data34)){let missing9;if(((((data34.kind === undefined) && (missing9 = "kind")) || ((data34.host === undefined) && (missing9 = "host"))) || ((data34.value === undefined) && (missing9 = "value"))) || ((data34.rank === undefined) && (missing9 = "rank"))){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/required",keyword:"required",params:{missingProperty: missing9},message:"must have required property '"+missing9+"'"}];return false;}else {const _errs81 = errors;for(const key10 in data34){if(!((((key10 === "kind") || (key10 === "host")) || (key10 === "value")) || (key10 === "rank"))){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key10},message:"must NOT have additional properties"}];return false;break;}}if(_errs81 === errors){if(data34.kind !== undefined){let data35 = data34.kind;const _errs82 = errors;if(errors === _errs82){if(typeof data35 === "string"){if(func2(data35) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com/kind",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/properties/kind/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com/kind",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/properties/kind/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid10 = _errs82 === errors;}else {var valid10 = true;}if(valid10){if(data34.host !== undefined){let data36 = data34.host;const _errs84 = errors;if(errors === _errs84){if(typeof data36 === "string"){if(func2(data36) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com/host",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/properties/host/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com/host",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/properties/host/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid10 = _errs84 === errors;}else {var valid10 = true;}if(valid10){if(data34.value !== undefined){let data37 = data34.value;const _errs86 = errors;if(errors === _errs86){if(typeof data37 === "string"){if(func2(data37) > 4000){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com/value",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/properties/value/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com/value",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid10 = _errs86 === errors;}else {var valid10 = true;}if(valid10){if(data34.rank !== undefined){let data38 = data34.rank;const _errs88 = errors;if(!(((typeof data38 == "number") && (!(data38 % 1) && !isNaN(data38))) && (isFinite(data38)))){validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com/rank",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/properties/rank/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid10 = _errs88 === errors;}else {var valid10 = true;}}}}}}}else {validate133.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs79 === errors;}else {var valid3 = true;}}}}}}}}}}else {validate133.errors = [{instancePath:instancePath+"/data/files",schemaPath:"#/properties/data/properties/files/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.hosts !== undefined){let data39 = data2.hosts;const _errs90 = errors;if(errors === _errs90){if(data39 && typeof data39 == "object" && !Array.isArray(data39)){if(Object.keys(data39).length > 30){validate133.errors = [{instancePath:instancePath+"/data/hosts",schemaPath:"#/properties/data/properties/hosts/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key11 in data39){let data40 = data39[key11];const _errs93 = errors;if(errors === _errs93){if(Array.isArray(data40)){if(data40.length > 20){validate133.errors = [{instancePath:instancePath+"/data/hosts/" + key11.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/hosts/additionalProperties/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid12 = true;const len0 = data40.length;for(let i0=0; i0 4000){validate133.errors = [{instancePath:instancePath+"/data/hosts/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/properties/hosts/additionalProperties/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/hosts/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/properties/hosts/additionalProperties/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid12 = _errs95 === errors;if(!valid12){break;}}}}else {validate133.errors = [{instancePath:instancePath+"/data/hosts/" + key11.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/hosts/additionalProperties/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid11 = _errs93 === errors;if(!valid11){break;}}}}else {validate133.errors = [{instancePath:instancePath+"/data/hosts",schemaPath:"#/properties/data/properties/hosts/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs90 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data42 = data2.initialSelection1;const _errs97 = errors;if(errors === _errs97){if(typeof data42 === "string"){if(func2(data42) > 4000){validate133.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs97 === errors;}else {var valid2 = true;}}}}}}else {validate133.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate133.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate133.errors = vErrors;return errors === 0;}validate133.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_handler_timeline = validate134;const schema204 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/handler-timeline.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":45,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["tasks","handlers"],"properties":{"tasks":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["name","notify"],"properties":{"name":{"type":"string","maxLength":4000},"notify":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}},"handlers":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}}};function validate134(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/handler-timeline.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate134.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate134.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate134.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 45){validate134.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 45},message:"must NOT have more than 45 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate134.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate134.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate134.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.tasks === undefined) && (missing1 = "tasks")) || ((data2.handlers === undefined) && (missing1 = "handlers"))){validate134.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "tasks") || (key2 === "handlers"))){validate134.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.tasks !== undefined){let data3 = data2.tasks;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate134.errors = [{instancePath:instancePath+"/data/tasks",schemaPath:"#/properties/data/properties/tasks/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate134.errors = [{instancePath:instancePath+"/data/tasks/" + i0+"/name",schemaPath:"#/properties/data/properties/tasks/items/properties/name/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate134.errors = [{instancePath:instancePath+"/data/tasks/" + i0+"/name",schemaPath:"#/properties/data/properties/tasks/items/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.notify !== undefined){let data6 = data4.notify;const _errs17 = errors;if(errors === _errs17){if(Array.isArray(data6)){if(data6.length > 20){validate134.errors = [{instancePath:instancePath+"/data/tasks/" + i0+"/notify",schemaPath:"#/properties/data/properties/tasks/items/properties/notify/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data6.length;for(let i1=0; i1 4000){validate134.errors = [{instancePath:instancePath+"/data/tasks/" + i0+"/notify/" + i1,schemaPath:"#/properties/data/properties/tasks/items/properties/notify/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate134.errors = [{instancePath:instancePath+"/data/tasks/" + i0+"/notify/" + i1,schemaPath:"#/properties/data/properties/tasks/items/properties/notify/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs19 === errors;if(!valid5){break;}}}}else {validate134.errors = [{instancePath:instancePath+"/data/tasks/" + i0+"/notify",schemaPath:"#/properties/data/properties/tasks/items/properties/notify/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}}}}}else {validate134.errors = [{instancePath:instancePath+"/data/tasks/" + i0,schemaPath:"#/properties/data/properties/tasks/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate134.errors = [{instancePath:instancePath+"/data/tasks",schemaPath:"#/properties/data/properties/tasks/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.handlers !== undefined){let data8 = data2.handlers;const _errs21 = errors;if(errors === _errs21){if(Array.isArray(data8)){if(data8.length > 20){validate134.errors = [{instancePath:instancePath+"/data/handlers",schemaPath:"#/properties/data/properties/handlers/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid6 = true;const len2 = data8.length;for(let i2=0; i2 4000){validate134.errors = [{instancePath:instancePath+"/data/handlers/" + i2,schemaPath:"#/properties/data/properties/handlers/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate134.errors = [{instancePath:instancePath+"/data/handlers/" + i2,schemaPath:"#/properties/data/properties/handlers/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs23 === errors;if(!valid6){break;}}}}else {validate134.errors = [{instancePath:instancePath+"/data/handlers",schemaPath:"#/properties/data/properties/handlers/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs21 === errors;}else {var valid2 = true;}}}}}else {validate134.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate134.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate134.errors = vErrors;return errors === 0;}validate134.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_host_pattern_tester = validate135;const schema205 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/host-pattern-tester.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":45,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["inventory","presets","ops","initialSelection1"],"properties":{"inventory":{"type":"string","maxLength":4000},"presets":{"type":"array","maxItems":22,"items":{"type":"string","maxLength":4000}},"ops":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate135(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/host-pattern-tester.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate135.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate135.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate135.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 45){validate135.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 45},message:"must NOT have more than 45 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate135.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate135.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate135.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((((data2.inventory === undefined) && (missing1 = "inventory")) || ((data2.presets === undefined) && (missing1 = "presets"))) || ((data2.ops === undefined) && (missing1 = "ops"))) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate135.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((((key2 === "inventory") || (key2 === "presets")) || (key2 === "ops")) || (key2 === "initialSelection1"))){validate135.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.inventory !== undefined){let data3 = data2.inventory;const _errs10 = errors;if(errors === _errs10){if(typeof data3 === "string"){if(func2(data3) > 4000){validate135.errors = [{instancePath:instancePath+"/data/inventory",schemaPath:"#/properties/data/properties/inventory/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate135.errors = [{instancePath:instancePath+"/data/inventory",schemaPath:"#/properties/data/properties/inventory/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.presets !== undefined){let data4 = data2.presets;const _errs12 = errors;if(errors === _errs12){if(Array.isArray(data4)){if(data4.length > 22){validate135.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/maxItems",keyword:"maxItems",params:{limit: 22},message:"must NOT have more than 22 items"}];return false;}else {var valid3 = true;const len0 = data4.length;for(let i0=0; i0 4000){validate135.errors = [{instancePath:instancePath+"/data/presets/" + i0,schemaPath:"#/properties/data/properties/presets/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate135.errors = [{instancePath:instancePath+"/data/presets/" + i0,schemaPath:"#/properties/data/properties/presets/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs14 === errors;if(!valid3){break;}}}}else {validate135.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs12 === errors;}else {var valid2 = true;}if(valid2){if(data2.ops !== undefined){let data6 = data2.ops;const _errs16 = errors;if(errors === _errs16){if(data6 && typeof data6 == "object" && !Array.isArray(data6)){if(Object.keys(data6).length > 30){validate135.errors = [{instancePath:instancePath+"/data/ops",schemaPath:"#/properties/data/properties/ops/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data6){let data7 = data6[key3];const _errs19 = errors;if(errors === _errs19){if(typeof data7 === "string"){if(func2(data7) > 4000){validate135.errors = [{instancePath:instancePath+"/data/ops/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/ops/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate135.errors = [{instancePath:instancePath+"/data/ops/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/ops/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs19 === errors;if(!valid4){break;}}}}else {validate135.errors = [{instancePath:instancePath+"/data/ops",schemaPath:"#/properties/data/properties/ops/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs16 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data8 = data2.initialSelection1;const _errs21 = errors;if(errors === _errs21){if(typeof data8 === "string"){if(func2(data8) > 4000){validate135.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate135.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs21 === errors;}else {var valid2 = true;}}}}}}}else {validate135.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate135.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate135.errors = vErrors;return errors === 0;}validate135.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_idempotency_demo = validate136;const schema206 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/idempotency-demo.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":60,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["tasks"],"properties":{"tasks":{"type":"array","maxItems":20,"items":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}}}}}}};function validate136(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/idempotency-demo.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate136.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate136.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate136.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 60){validate136.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 60},message:"must NOT have more than 60 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate136.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate136.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate136.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.tasks === undefined) && (missing1 = "tasks")){validate136.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "tasks")){validate136.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.tasks !== undefined){let data3 = data2.tasks;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate136.errors = [{instancePath:instancePath+"/data/tasks",schemaPath:"#/properties/data/properties/tasks/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 30){validate136.errors = [{instancePath:instancePath+"/data/tasks/" + i0,schemaPath:"#/properties/data/properties/tasks/items/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data4){let data5 = data4[key3];const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate136.errors = [{instancePath:instancePath+"/data/tasks/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/tasks/items/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate136.errors = [{instancePath:instancePath+"/data/tasks/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/tasks/items/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;if(!valid4){break;}}}}else {validate136.errors = [{instancePath:instancePath+"/data/tasks/" + i0,schemaPath:"#/properties/data/properties/tasks/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate136.errors = [{instancePath:instancePath+"/data/tasks",schemaPath:"#/properties/data/properties/tasks/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate136.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate136.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate136.errors = vErrors;return errors === 0;}validate136.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_inventory_explorer = validate137;const schema207 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/inventory-explorer.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":33,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["sample","initialSelection1"],"properties":{"sample":{"type":"string","maxLength":4000},"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate137(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/inventory-explorer.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate137.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate137.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate137.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 33){validate137.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 33},message:"must NOT have more than 33 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate137.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate137.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate137.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.sample === undefined) && (missing1 = "sample")) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate137.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "sample") || (key2 === "initialSelection1"))){validate137.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.sample !== undefined){let data3 = data2.sample;const _errs10 = errors;if(errors === _errs10){if(typeof data3 === "string"){if(func2(data3) > 4000){validate137.errors = [{instancePath:instancePath+"/data/sample",schemaPath:"#/properties/data/properties/sample/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate137.errors = [{instancePath:instancePath+"/data/sample",schemaPath:"#/properties/data/properties/sample/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data4 = data2.initialSelection1;const _errs12 = errors;if(errors === _errs12){if(typeof data4 === "string"){if(func2(data4) > 4000){validate137.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate137.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs12 === errors;}else {var valid2 = true;}}}}}else {validate137.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate137.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate137.errors = vErrors;return errors === 0;}validate137.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_lab_network_map = validate138;const schema208 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/lab-network-map.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["flows","n","initialSelection1"],"properties":{"flows":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["id","label","ok","text","rule","arrows","nodes"],"properties":{"id":{"type":"string","maxLength":4000},"label":{"type":"string","maxLength":4000},"ok":{"type":"boolean"},"text":{"type":"string","maxLength":4000},"rule":{"type":"string","maxLength":4000},"arrows":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["points"],"properties":{"points":{"type":"array","maxItems":20,"items":{"type":"array","maxItems":20,"items":{"type":"integer"}}},"variant":{"type":"string","maxLength":4000},"both":{"type":"boolean"},"label":{"type":"string","maxLength":4000},"labelAt":{"type":"number"},"labelDx":{"type":"integer"},"labelDy":{"type":"integer"},"labelAnchor":{"type":"string","maxLength":4000},"hot":{"type":"boolean"}}}},"nodes":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}},"n":{"type":"object","additionalProperties":false,"required":["net","router","laptop","nic","seal","gw","lxc","ws","sa"],"properties":{"net":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000}}},"router":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000}}},"laptop":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000}}},"nic":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000}}},"seal":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000}}},"gw":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub","titleSize"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000},"titleSize":{"type":"number"}}},"lxc":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000}}},"ws":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","mono"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"mono":{"type":"boolean"}}},"sa":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000}}},"sb":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000}}},"sc":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000}}},"sd":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000}}},"ut":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub","mono"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000},"mono":{"type":"boolean"}}}}},"initialSelection1":{"type":"string","maxLength":4000}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate138(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/lab-network-map.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate138.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate138.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate138.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate138.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate138.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate138.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((((data2.flows === undefined) && (missing1 = "flows")) || ((data2.n === undefined) && (missing1 = "n"))) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate138.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(((key2 === "flows") || (key2 === "n")) || (key2 === "initialSelection1"))){validate138.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.flows !== undefined){let data3 = data2.flows;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate138.errors = [{instancePath:instancePath+"/data/flows",schemaPath:"#/properties/data/properties/flows/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/id",schemaPath:"#/properties/data/properties/flows/items/properties/id/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/id",schemaPath:"#/properties/data/properties/flows/items/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.label !== undefined){let data6 = data4.label;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/label",schemaPath:"#/properties/data/properties/flows/items/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/label",schemaPath:"#/properties/data/properties/flows/items/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.ok !== undefined){const _errs19 = errors;if(typeof data4.ok !== "boolean"){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/ok",schemaPath:"#/properties/data/properties/flows/items/properties/ok/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data4.text !== undefined){let data8 = data4.text;const _errs21 = errors;if(errors === _errs21){if(typeof data8 === "string"){if(func2(data8) > 4000){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/text",schemaPath:"#/properties/data/properties/flows/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/text",schemaPath:"#/properties/data/properties/flows/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs21 === errors;}else {var valid4 = true;}if(valid4){if(data4.rule !== undefined){let data9 = data4.rule;const _errs23 = errors;if(errors === _errs23){if(typeof data9 === "string"){if(func2(data9) > 4000){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/rule",schemaPath:"#/properties/data/properties/flows/items/properties/rule/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/rule",schemaPath:"#/properties/data/properties/flows/items/properties/rule/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs23 === errors;}else {var valid4 = true;}if(valid4){if(data4.arrows !== undefined){let data10 = data4.arrows;const _errs25 = errors;if(errors === _errs25){if(Array.isArray(data10)){if(data10.length > 20){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data10.length;for(let i1=0; i1 20){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/points",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/points/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid7 = true;const len2 = data12.length;for(let i2=0; i2 20){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/points/" + i2,schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/points/items/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid8 = true;const len3 = data13.length;for(let i3=0; i3 4000){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/variant",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/variant/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/variant",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/variant/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs36 === errors;}else {var valid6 = true;}if(valid6){if(data11.both !== undefined){const _errs38 = errors;if(typeof data11.both !== "boolean"){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/both",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/both/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid6 = _errs38 === errors;}else {var valid6 = true;}if(valid6){if(data11.label !== undefined){let data17 = data11.label;const _errs40 = errors;if(errors === _errs40){if(typeof data17 === "string"){if(func2(data17) > 4000){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/label",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/label",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs40 === errors;}else {var valid6 = true;}if(valid6){if(data11.labelAt !== undefined){let data18 = data11.labelAt;const _errs42 = errors;if(!((typeof data18 == "number") && (isFinite(data18)))){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/labelAt",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/labelAt/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}var valid6 = _errs42 === errors;}else {var valid6 = true;}if(valid6){if(data11.labelDx !== undefined){let data19 = data11.labelDx;const _errs44 = errors;if(!(((typeof data19 == "number") && (!(data19 % 1) && !isNaN(data19))) && (isFinite(data19)))){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/labelDx",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/labelDx/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid6 = _errs44 === errors;}else {var valid6 = true;}if(valid6){if(data11.labelDy !== undefined){let data20 = data11.labelDy;const _errs46 = errors;if(!(((typeof data20 == "number") && (!(data20 % 1) && !isNaN(data20))) && (isFinite(data20)))){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/labelDy",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/labelDy/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid6 = _errs46 === errors;}else {var valid6 = true;}if(valid6){if(data11.labelAnchor !== undefined){let data21 = data11.labelAnchor;const _errs48 = errors;if(errors === _errs48){if(typeof data21 === "string"){if(func2(data21) > 4000){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/labelAnchor",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/labelAnchor/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/labelAnchor",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/labelAnchor/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs48 === errors;}else {var valid6 = true;}if(valid6){if(data11.hot !== undefined){const _errs50 = errors;if(typeof data11.hot !== "boolean"){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/hot",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/hot/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid6 = _errs50 === errors;}else {var valid6 = true;}}}}}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1,schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs27 === errors;if(!valid5){break;}}}}else {validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs25 === errors;}else {var valid4 = true;}if(valid4){if(data4.nodes !== undefined){let data23 = data4.nodes;const _errs52 = errors;if(errors === _errs52){if(Array.isArray(data23)){if(data23.length > 20){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/nodes",schemaPath:"#/properties/data/properties/flows/items/properties/nodes/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid9 = true;const len4 = data23.length;for(let i4=0; i4 4000){validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/nodes/" + i4,schemaPath:"#/properties/data/properties/flows/items/properties/nodes/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/nodes/" + i4,schemaPath:"#/properties/data/properties/flows/items/properties/nodes/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid9 = _errs54 === errors;if(!valid9){break;}}}}else {validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/nodes",schemaPath:"#/properties/data/properties/flows/items/properties/nodes/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs52 === errors;}else {var valid4 = true;}}}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/flows/" + i0,schemaPath:"#/properties/data/properties/flows/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate138.errors = [{instancePath:instancePath+"/data/flows",schemaPath:"#/properties/data/properties/flows/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.n !== undefined){let data25 = data2.n;const _errs56 = errors;if(errors === _errs56){if(data25 && typeof data25 == "object" && !Array.isArray(data25)){let missing4;if((((((((((data25.net === undefined) && (missing4 = "net")) || ((data25.router === undefined) && (missing4 = "router"))) || ((data25.laptop === undefined) && (missing4 = "laptop"))) || ((data25.nic === undefined) && (missing4 = "nic"))) || ((data25.seal === undefined) && (missing4 = "seal"))) || ((data25.gw === undefined) && (missing4 = "gw"))) || ((data25.lxc === undefined) && (missing4 = "lxc"))) || ((data25.ws === undefined) && (missing4 = "ws"))) || ((data25.sa === undefined) && (missing4 = "sa"))){validate138.errors = [{instancePath:instancePath+"/data/n",schemaPath:"#/properties/data/properties/n/required",keyword:"required",params:{missingProperty: missing4},message:"must have required property '"+missing4+"'"}];return false;}else {const _errs58 = errors;for(const key5 in data25){if(!(func1.call(schema208.properties.data.properties.n.properties, key5))){validate138.errors = [{instancePath:instancePath+"/data/n",schemaPath:"#/properties/data/properties/n/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs58 === errors){if(data25.net !== undefined){let data26 = data25.net;const _errs59 = errors;if(errors === _errs59){if(data26 && typeof data26 == "object" && !Array.isArray(data26)){let missing5;if(((((((data26.x === undefined) && (missing5 = "x")) || ((data26.y === undefined) && (missing5 = "y"))) || ((data26.w === undefined) && (missing5 = "w"))) || ((data26.h === undefined) && (missing5 = "h"))) || ((data26.tone === undefined) && (missing5 = "tone"))) || ((data26.title === undefined) && (missing5 = "title"))){validate138.errors = [{instancePath:instancePath+"/data/n/net",schemaPath:"#/properties/data/properties/n/properties/net/required",keyword:"required",params:{missingProperty: missing5},message:"must have required property '"+missing5+"'"}];return false;}else {const _errs61 = errors;for(const key6 in data26){if(!((((((key6 === "x") || (key6 === "y")) || (key6 === "w")) || (key6 === "h")) || (key6 === "tone")) || (key6 === "title"))){validate138.errors = [{instancePath:instancePath+"/data/n/net",schemaPath:"#/properties/data/properties/n/properties/net/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"}];return false;break;}}if(_errs61 === errors){if(data26.x !== undefined){let data27 = data26.x;const _errs62 = errors;if(!(((typeof data27 == "number") && (!(data27 % 1) && !isNaN(data27))) && (isFinite(data27)))){validate138.errors = [{instancePath:instancePath+"/data/n/net/x",schemaPath:"#/properties/data/properties/n/properties/net/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid11 = _errs62 === errors;}else {var valid11 = true;}if(valid11){if(data26.y !== undefined){let data28 = data26.y;const _errs64 = errors;if(!(((typeof data28 == "number") && (!(data28 % 1) && !isNaN(data28))) && (isFinite(data28)))){validate138.errors = [{instancePath:instancePath+"/data/n/net/y",schemaPath:"#/properties/data/properties/n/properties/net/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid11 = _errs64 === errors;}else {var valid11 = true;}if(valid11){if(data26.w !== undefined){let data29 = data26.w;const _errs66 = errors;if(!(((typeof data29 == "number") && (!(data29 % 1) && !isNaN(data29))) && (isFinite(data29)))){validate138.errors = [{instancePath:instancePath+"/data/n/net/w",schemaPath:"#/properties/data/properties/n/properties/net/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid11 = _errs66 === errors;}else {var valid11 = true;}if(valid11){if(data26.h !== undefined){let data30 = data26.h;const _errs68 = errors;if(!(((typeof data30 == "number") && (!(data30 % 1) && !isNaN(data30))) && (isFinite(data30)))){validate138.errors = [{instancePath:instancePath+"/data/n/net/h",schemaPath:"#/properties/data/properties/n/properties/net/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid11 = _errs68 === errors;}else {var valid11 = true;}if(valid11){if(data26.tone !== undefined){let data31 = data26.tone;const _errs70 = errors;if(errors === _errs70){if(typeof data31 === "string"){if(func2(data31) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/net/tone",schemaPath:"#/properties/data/properties/n/properties/net/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/net/tone",schemaPath:"#/properties/data/properties/n/properties/net/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid11 = _errs70 === errors;}else {var valid11 = true;}if(valid11){if(data26.title !== undefined){let data32 = data26.title;const _errs72 = errors;if(errors === _errs72){if(typeof data32 === "string"){if(func2(data32) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/net/title",schemaPath:"#/properties/data/properties/n/properties/net/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/net/title",schemaPath:"#/properties/data/properties/n/properties/net/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid11 = _errs72 === errors;}else {var valid11 = true;}}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/n/net",schemaPath:"#/properties/data/properties/n/properties/net/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs59 === errors;}else {var valid10 = true;}if(valid10){if(data25.router !== undefined){let data33 = data25.router;const _errs74 = errors;if(errors === _errs74){if(data33 && typeof data33 == "object" && !Array.isArray(data33)){let missing6;if((((((((data33.x === undefined) && (missing6 = "x")) || ((data33.y === undefined) && (missing6 = "y"))) || ((data33.w === undefined) && (missing6 = "w"))) || ((data33.h === undefined) && (missing6 = "h"))) || ((data33.tone === undefined) && (missing6 = "tone"))) || ((data33.title === undefined) && (missing6 = "title"))) || ((data33.sub === undefined) && (missing6 = "sub"))){validate138.errors = [{instancePath:instancePath+"/data/n/router",schemaPath:"#/properties/data/properties/n/properties/router/required",keyword:"required",params:{missingProperty: missing6},message:"must have required property '"+missing6+"'"}];return false;}else {const _errs76 = errors;for(const key7 in data33){if(!(((((((key7 === "x") || (key7 === "y")) || (key7 === "w")) || (key7 === "h")) || (key7 === "tone")) || (key7 === "title")) || (key7 === "sub"))){validate138.errors = [{instancePath:instancePath+"/data/n/router",schemaPath:"#/properties/data/properties/n/properties/router/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key7},message:"must NOT have additional properties"}];return false;break;}}if(_errs76 === errors){if(data33.x !== undefined){let data34 = data33.x;const _errs77 = errors;if(!(((typeof data34 == "number") && (!(data34 % 1) && !isNaN(data34))) && (isFinite(data34)))){validate138.errors = [{instancePath:instancePath+"/data/n/router/x",schemaPath:"#/properties/data/properties/n/properties/router/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid12 = _errs77 === errors;}else {var valid12 = true;}if(valid12){if(data33.y !== undefined){let data35 = data33.y;const _errs79 = errors;if(!(((typeof data35 == "number") && (!(data35 % 1) && !isNaN(data35))) && (isFinite(data35)))){validate138.errors = [{instancePath:instancePath+"/data/n/router/y",schemaPath:"#/properties/data/properties/n/properties/router/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid12 = _errs79 === errors;}else {var valid12 = true;}if(valid12){if(data33.w !== undefined){let data36 = data33.w;const _errs81 = errors;if(!(((typeof data36 == "number") && (!(data36 % 1) && !isNaN(data36))) && (isFinite(data36)))){validate138.errors = [{instancePath:instancePath+"/data/n/router/w",schemaPath:"#/properties/data/properties/n/properties/router/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid12 = _errs81 === errors;}else {var valid12 = true;}if(valid12){if(data33.h !== undefined){let data37 = data33.h;const _errs83 = errors;if(!(((typeof data37 == "number") && (!(data37 % 1) && !isNaN(data37))) && (isFinite(data37)))){validate138.errors = [{instancePath:instancePath+"/data/n/router/h",schemaPath:"#/properties/data/properties/n/properties/router/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid12 = _errs83 === errors;}else {var valid12 = true;}if(valid12){if(data33.tone !== undefined){let data38 = data33.tone;const _errs85 = errors;if(errors === _errs85){if(typeof data38 === "string"){if(func2(data38) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/router/tone",schemaPath:"#/properties/data/properties/n/properties/router/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/router/tone",schemaPath:"#/properties/data/properties/n/properties/router/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid12 = _errs85 === errors;}else {var valid12 = true;}if(valid12){if(data33.title !== undefined){let data39 = data33.title;const _errs87 = errors;if(errors === _errs87){if(typeof data39 === "string"){if(func2(data39) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/router/title",schemaPath:"#/properties/data/properties/n/properties/router/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/router/title",schemaPath:"#/properties/data/properties/n/properties/router/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid12 = _errs87 === errors;}else {var valid12 = true;}if(valid12){if(data33.sub !== undefined){let data40 = data33.sub;const _errs89 = errors;if(errors === _errs89){if(typeof data40 === "string"){if(func2(data40) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/router/sub",schemaPath:"#/properties/data/properties/n/properties/router/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/router/sub",schemaPath:"#/properties/data/properties/n/properties/router/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid12 = _errs89 === errors;}else {var valid12 = true;}}}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/n/router",schemaPath:"#/properties/data/properties/n/properties/router/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs74 === errors;}else {var valid10 = true;}if(valid10){if(data25.laptop !== undefined){let data41 = data25.laptop;const _errs91 = errors;if(errors === _errs91){if(data41 && typeof data41 == "object" && !Array.isArray(data41)){let missing7;if(((((((data41.x === undefined) && (missing7 = "x")) || ((data41.y === undefined) && (missing7 = "y"))) || ((data41.w === undefined) && (missing7 = "w"))) || ((data41.h === undefined) && (missing7 = "h"))) || ((data41.tone === undefined) && (missing7 = "tone"))) || ((data41.title === undefined) && (missing7 = "title"))){validate138.errors = [{instancePath:instancePath+"/data/n/laptop",schemaPath:"#/properties/data/properties/n/properties/laptop/required",keyword:"required",params:{missingProperty: missing7},message:"must have required property '"+missing7+"'"}];return false;}else {const _errs93 = errors;for(const key8 in data41){if(!((((((key8 === "x") || (key8 === "y")) || (key8 === "w")) || (key8 === "h")) || (key8 === "tone")) || (key8 === "title"))){validate138.errors = [{instancePath:instancePath+"/data/n/laptop",schemaPath:"#/properties/data/properties/n/properties/laptop/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key8},message:"must NOT have additional properties"}];return false;break;}}if(_errs93 === errors){if(data41.x !== undefined){let data42 = data41.x;const _errs94 = errors;if(!(((typeof data42 == "number") && (!(data42 % 1) && !isNaN(data42))) && (isFinite(data42)))){validate138.errors = [{instancePath:instancePath+"/data/n/laptop/x",schemaPath:"#/properties/data/properties/n/properties/laptop/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid13 = _errs94 === errors;}else {var valid13 = true;}if(valid13){if(data41.y !== undefined){let data43 = data41.y;const _errs96 = errors;if(!(((typeof data43 == "number") && (!(data43 % 1) && !isNaN(data43))) && (isFinite(data43)))){validate138.errors = [{instancePath:instancePath+"/data/n/laptop/y",schemaPath:"#/properties/data/properties/n/properties/laptop/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid13 = _errs96 === errors;}else {var valid13 = true;}if(valid13){if(data41.w !== undefined){let data44 = data41.w;const _errs98 = errors;if(!(((typeof data44 == "number") && (!(data44 % 1) && !isNaN(data44))) && (isFinite(data44)))){validate138.errors = [{instancePath:instancePath+"/data/n/laptop/w",schemaPath:"#/properties/data/properties/n/properties/laptop/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid13 = _errs98 === errors;}else {var valid13 = true;}if(valid13){if(data41.h !== undefined){let data45 = data41.h;const _errs100 = errors;if(!(((typeof data45 == "number") && (!(data45 % 1) && !isNaN(data45))) && (isFinite(data45)))){validate138.errors = [{instancePath:instancePath+"/data/n/laptop/h",schemaPath:"#/properties/data/properties/n/properties/laptop/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid13 = _errs100 === errors;}else {var valid13 = true;}if(valid13){if(data41.tone !== undefined){let data46 = data41.tone;const _errs102 = errors;if(errors === _errs102){if(typeof data46 === "string"){if(func2(data46) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/laptop/tone",schemaPath:"#/properties/data/properties/n/properties/laptop/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/laptop/tone",schemaPath:"#/properties/data/properties/n/properties/laptop/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid13 = _errs102 === errors;}else {var valid13 = true;}if(valid13){if(data41.title !== undefined){let data47 = data41.title;const _errs104 = errors;if(errors === _errs104){if(typeof data47 === "string"){if(func2(data47) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/laptop/title",schemaPath:"#/properties/data/properties/n/properties/laptop/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/laptop/title",schemaPath:"#/properties/data/properties/n/properties/laptop/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid13 = _errs104 === errors;}else {var valid13 = true;}}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/n/laptop",schemaPath:"#/properties/data/properties/n/properties/laptop/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs91 === errors;}else {var valid10 = true;}if(valid10){if(data25.nic !== undefined){let data48 = data25.nic;const _errs106 = errors;if(errors === _errs106){if(data48 && typeof data48 == "object" && !Array.isArray(data48)){let missing8;if((((((((data48.x === undefined) && (missing8 = "x")) || ((data48.y === undefined) && (missing8 = "y"))) || ((data48.w === undefined) && (missing8 = "w"))) || ((data48.h === undefined) && (missing8 = "h"))) || ((data48.tone === undefined) && (missing8 = "tone"))) || ((data48.title === undefined) && (missing8 = "title"))) || ((data48.sub === undefined) && (missing8 = "sub"))){validate138.errors = [{instancePath:instancePath+"/data/n/nic",schemaPath:"#/properties/data/properties/n/properties/nic/required",keyword:"required",params:{missingProperty: missing8},message:"must have required property '"+missing8+"'"}];return false;}else {const _errs108 = errors;for(const key9 in data48){if(!(((((((key9 === "x") || (key9 === "y")) || (key9 === "w")) || (key9 === "h")) || (key9 === "tone")) || (key9 === "title")) || (key9 === "sub"))){validate138.errors = [{instancePath:instancePath+"/data/n/nic",schemaPath:"#/properties/data/properties/n/properties/nic/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key9},message:"must NOT have additional properties"}];return false;break;}}if(_errs108 === errors){if(data48.x !== undefined){let data49 = data48.x;const _errs109 = errors;if(!(((typeof data49 == "number") && (!(data49 % 1) && !isNaN(data49))) && (isFinite(data49)))){validate138.errors = [{instancePath:instancePath+"/data/n/nic/x",schemaPath:"#/properties/data/properties/n/properties/nic/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid14 = _errs109 === errors;}else {var valid14 = true;}if(valid14){if(data48.y !== undefined){let data50 = data48.y;const _errs111 = errors;if(!(((typeof data50 == "number") && (!(data50 % 1) && !isNaN(data50))) && (isFinite(data50)))){validate138.errors = [{instancePath:instancePath+"/data/n/nic/y",schemaPath:"#/properties/data/properties/n/properties/nic/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid14 = _errs111 === errors;}else {var valid14 = true;}if(valid14){if(data48.w !== undefined){let data51 = data48.w;const _errs113 = errors;if(!(((typeof data51 == "number") && (!(data51 % 1) && !isNaN(data51))) && (isFinite(data51)))){validate138.errors = [{instancePath:instancePath+"/data/n/nic/w",schemaPath:"#/properties/data/properties/n/properties/nic/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid14 = _errs113 === errors;}else {var valid14 = true;}if(valid14){if(data48.h !== undefined){let data52 = data48.h;const _errs115 = errors;if(!(((typeof data52 == "number") && (!(data52 % 1) && !isNaN(data52))) && (isFinite(data52)))){validate138.errors = [{instancePath:instancePath+"/data/n/nic/h",schemaPath:"#/properties/data/properties/n/properties/nic/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid14 = _errs115 === errors;}else {var valid14 = true;}if(valid14){if(data48.tone !== undefined){let data53 = data48.tone;const _errs117 = errors;if(errors === _errs117){if(typeof data53 === "string"){if(func2(data53) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/nic/tone",schemaPath:"#/properties/data/properties/n/properties/nic/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/nic/tone",schemaPath:"#/properties/data/properties/n/properties/nic/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid14 = _errs117 === errors;}else {var valid14 = true;}if(valid14){if(data48.title !== undefined){let data54 = data48.title;const _errs119 = errors;if(errors === _errs119){if(typeof data54 === "string"){if(func2(data54) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/nic/title",schemaPath:"#/properties/data/properties/n/properties/nic/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/nic/title",schemaPath:"#/properties/data/properties/n/properties/nic/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid14 = _errs119 === errors;}else {var valid14 = true;}if(valid14){if(data48.sub !== undefined){let data55 = data48.sub;const _errs121 = errors;if(errors === _errs121){if(typeof data55 === "string"){if(func2(data55) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/nic/sub",schemaPath:"#/properties/data/properties/n/properties/nic/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/nic/sub",schemaPath:"#/properties/data/properties/n/properties/nic/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid14 = _errs121 === errors;}else {var valid14 = true;}}}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/n/nic",schemaPath:"#/properties/data/properties/n/properties/nic/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs106 === errors;}else {var valid10 = true;}if(valid10){if(data25.seal !== undefined){let data56 = data25.seal;const _errs123 = errors;if(errors === _errs123){if(data56 && typeof data56 == "object" && !Array.isArray(data56)){let missing9;if((((((((data56.x === undefined) && (missing9 = "x")) || ((data56.y === undefined) && (missing9 = "y"))) || ((data56.w === undefined) && (missing9 = "w"))) || ((data56.h === undefined) && (missing9 = "h"))) || ((data56.tone === undefined) && (missing9 = "tone"))) || ((data56.title === undefined) && (missing9 = "title"))) || ((data56.sub === undefined) && (missing9 = "sub"))){validate138.errors = [{instancePath:instancePath+"/data/n/seal",schemaPath:"#/properties/data/properties/n/properties/seal/required",keyword:"required",params:{missingProperty: missing9},message:"must have required property '"+missing9+"'"}];return false;}else {const _errs125 = errors;for(const key10 in data56){if(!(((((((key10 === "x") || (key10 === "y")) || (key10 === "w")) || (key10 === "h")) || (key10 === "tone")) || (key10 === "title")) || (key10 === "sub"))){validate138.errors = [{instancePath:instancePath+"/data/n/seal",schemaPath:"#/properties/data/properties/n/properties/seal/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key10},message:"must NOT have additional properties"}];return false;break;}}if(_errs125 === errors){if(data56.x !== undefined){let data57 = data56.x;const _errs126 = errors;if(!(((typeof data57 == "number") && (!(data57 % 1) && !isNaN(data57))) && (isFinite(data57)))){validate138.errors = [{instancePath:instancePath+"/data/n/seal/x",schemaPath:"#/properties/data/properties/n/properties/seal/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid15 = _errs126 === errors;}else {var valid15 = true;}if(valid15){if(data56.y !== undefined){let data58 = data56.y;const _errs128 = errors;if(!(((typeof data58 == "number") && (!(data58 % 1) && !isNaN(data58))) && (isFinite(data58)))){validate138.errors = [{instancePath:instancePath+"/data/n/seal/y",schemaPath:"#/properties/data/properties/n/properties/seal/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid15 = _errs128 === errors;}else {var valid15 = true;}if(valid15){if(data56.w !== undefined){let data59 = data56.w;const _errs130 = errors;if(!(((typeof data59 == "number") && (!(data59 % 1) && !isNaN(data59))) && (isFinite(data59)))){validate138.errors = [{instancePath:instancePath+"/data/n/seal/w",schemaPath:"#/properties/data/properties/n/properties/seal/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid15 = _errs130 === errors;}else {var valid15 = true;}if(valid15){if(data56.h !== undefined){let data60 = data56.h;const _errs132 = errors;if(!(((typeof data60 == "number") && (!(data60 % 1) && !isNaN(data60))) && (isFinite(data60)))){validate138.errors = [{instancePath:instancePath+"/data/n/seal/h",schemaPath:"#/properties/data/properties/n/properties/seal/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid15 = _errs132 === errors;}else {var valid15 = true;}if(valid15){if(data56.tone !== undefined){let data61 = data56.tone;const _errs134 = errors;if(errors === _errs134){if(typeof data61 === "string"){if(func2(data61) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/seal/tone",schemaPath:"#/properties/data/properties/n/properties/seal/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/seal/tone",schemaPath:"#/properties/data/properties/n/properties/seal/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid15 = _errs134 === errors;}else {var valid15 = true;}if(valid15){if(data56.title !== undefined){let data62 = data56.title;const _errs136 = errors;if(errors === _errs136){if(typeof data62 === "string"){if(func2(data62) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/seal/title",schemaPath:"#/properties/data/properties/n/properties/seal/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/seal/title",schemaPath:"#/properties/data/properties/n/properties/seal/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid15 = _errs136 === errors;}else {var valid15 = true;}if(valid15){if(data56.sub !== undefined){let data63 = data56.sub;const _errs138 = errors;if(errors === _errs138){if(typeof data63 === "string"){if(func2(data63) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/seal/sub",schemaPath:"#/properties/data/properties/n/properties/seal/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/seal/sub",schemaPath:"#/properties/data/properties/n/properties/seal/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid15 = _errs138 === errors;}else {var valid15 = true;}}}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/n/seal",schemaPath:"#/properties/data/properties/n/properties/seal/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs123 === errors;}else {var valid10 = true;}if(valid10){if(data25.gw !== undefined){let data64 = data25.gw;const _errs140 = errors;if(errors === _errs140){if(data64 && typeof data64 == "object" && !Array.isArray(data64)){let missing10;if(((((((((data64.x === undefined) && (missing10 = "x")) || ((data64.y === undefined) && (missing10 = "y"))) || ((data64.w === undefined) && (missing10 = "w"))) || ((data64.h === undefined) && (missing10 = "h"))) || ((data64.tone === undefined) && (missing10 = "tone"))) || ((data64.title === undefined) && (missing10 = "title"))) || ((data64.sub === undefined) && (missing10 = "sub"))) || ((data64.titleSize === undefined) && (missing10 = "titleSize"))){validate138.errors = [{instancePath:instancePath+"/data/n/gw",schemaPath:"#/properties/data/properties/n/properties/gw/required",keyword:"required",params:{missingProperty: missing10},message:"must have required property '"+missing10+"'"}];return false;}else {const _errs142 = errors;for(const key11 in data64){if(!((((((((key11 === "x") || (key11 === "y")) || (key11 === "w")) || (key11 === "h")) || (key11 === "tone")) || (key11 === "title")) || (key11 === "sub")) || (key11 === "titleSize"))){validate138.errors = [{instancePath:instancePath+"/data/n/gw",schemaPath:"#/properties/data/properties/n/properties/gw/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key11},message:"must NOT have additional properties"}];return false;break;}}if(_errs142 === errors){if(data64.x !== undefined){let data65 = data64.x;const _errs143 = errors;if(!(((typeof data65 == "number") && (!(data65 % 1) && !isNaN(data65))) && (isFinite(data65)))){validate138.errors = [{instancePath:instancePath+"/data/n/gw/x",schemaPath:"#/properties/data/properties/n/properties/gw/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid16 = _errs143 === errors;}else {var valid16 = true;}if(valid16){if(data64.y !== undefined){let data66 = data64.y;const _errs145 = errors;if(!(((typeof data66 == "number") && (!(data66 % 1) && !isNaN(data66))) && (isFinite(data66)))){validate138.errors = [{instancePath:instancePath+"/data/n/gw/y",schemaPath:"#/properties/data/properties/n/properties/gw/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid16 = _errs145 === errors;}else {var valid16 = true;}if(valid16){if(data64.w !== undefined){let data67 = data64.w;const _errs147 = errors;if(!(((typeof data67 == "number") && (!(data67 % 1) && !isNaN(data67))) && (isFinite(data67)))){validate138.errors = [{instancePath:instancePath+"/data/n/gw/w",schemaPath:"#/properties/data/properties/n/properties/gw/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid16 = _errs147 === errors;}else {var valid16 = true;}if(valid16){if(data64.h !== undefined){let data68 = data64.h;const _errs149 = errors;if(!(((typeof data68 == "number") && (!(data68 % 1) && !isNaN(data68))) && (isFinite(data68)))){validate138.errors = [{instancePath:instancePath+"/data/n/gw/h",schemaPath:"#/properties/data/properties/n/properties/gw/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid16 = _errs149 === errors;}else {var valid16 = true;}if(valid16){if(data64.tone !== undefined){let data69 = data64.tone;const _errs151 = errors;if(errors === _errs151){if(typeof data69 === "string"){if(func2(data69) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/gw/tone",schemaPath:"#/properties/data/properties/n/properties/gw/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/gw/tone",schemaPath:"#/properties/data/properties/n/properties/gw/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid16 = _errs151 === errors;}else {var valid16 = true;}if(valid16){if(data64.title !== undefined){let data70 = data64.title;const _errs153 = errors;if(errors === _errs153){if(typeof data70 === "string"){if(func2(data70) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/gw/title",schemaPath:"#/properties/data/properties/n/properties/gw/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/gw/title",schemaPath:"#/properties/data/properties/n/properties/gw/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid16 = _errs153 === errors;}else {var valid16 = true;}if(valid16){if(data64.sub !== undefined){let data71 = data64.sub;const _errs155 = errors;if(errors === _errs155){if(typeof data71 === "string"){if(func2(data71) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/gw/sub",schemaPath:"#/properties/data/properties/n/properties/gw/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/gw/sub",schemaPath:"#/properties/data/properties/n/properties/gw/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid16 = _errs155 === errors;}else {var valid16 = true;}if(valid16){if(data64.titleSize !== undefined){let data72 = data64.titleSize;const _errs157 = errors;if(!((typeof data72 == "number") && (isFinite(data72)))){validate138.errors = [{instancePath:instancePath+"/data/n/gw/titleSize",schemaPath:"#/properties/data/properties/n/properties/gw/properties/titleSize/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}var valid16 = _errs157 === errors;}else {var valid16 = true;}}}}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/n/gw",schemaPath:"#/properties/data/properties/n/properties/gw/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs140 === errors;}else {var valid10 = true;}if(valid10){if(data25.lxc !== undefined){let data73 = data25.lxc;const _errs159 = errors;if(errors === _errs159){if(data73 && typeof data73 == "object" && !Array.isArray(data73)){let missing11;if((((((((data73.x === undefined) && (missing11 = "x")) || ((data73.y === undefined) && (missing11 = "y"))) || ((data73.w === undefined) && (missing11 = "w"))) || ((data73.h === undefined) && (missing11 = "h"))) || ((data73.tone === undefined) && (missing11 = "tone"))) || ((data73.title === undefined) && (missing11 = "title"))) || ((data73.sub === undefined) && (missing11 = "sub"))){validate138.errors = [{instancePath:instancePath+"/data/n/lxc",schemaPath:"#/properties/data/properties/n/properties/lxc/required",keyword:"required",params:{missingProperty: missing11},message:"must have required property '"+missing11+"'"}];return false;}else {const _errs161 = errors;for(const key12 in data73){if(!(((((((key12 === "x") || (key12 === "y")) || (key12 === "w")) || (key12 === "h")) || (key12 === "tone")) || (key12 === "title")) || (key12 === "sub"))){validate138.errors = [{instancePath:instancePath+"/data/n/lxc",schemaPath:"#/properties/data/properties/n/properties/lxc/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key12},message:"must NOT have additional properties"}];return false;break;}}if(_errs161 === errors){if(data73.x !== undefined){let data74 = data73.x;const _errs162 = errors;if(!(((typeof data74 == "number") && (!(data74 % 1) && !isNaN(data74))) && (isFinite(data74)))){validate138.errors = [{instancePath:instancePath+"/data/n/lxc/x",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid17 = _errs162 === errors;}else {var valid17 = true;}if(valid17){if(data73.y !== undefined){let data75 = data73.y;const _errs164 = errors;if(!(((typeof data75 == "number") && (!(data75 % 1) && !isNaN(data75))) && (isFinite(data75)))){validate138.errors = [{instancePath:instancePath+"/data/n/lxc/y",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid17 = _errs164 === errors;}else {var valid17 = true;}if(valid17){if(data73.w !== undefined){let data76 = data73.w;const _errs166 = errors;if(!(((typeof data76 == "number") && (!(data76 % 1) && !isNaN(data76))) && (isFinite(data76)))){validate138.errors = [{instancePath:instancePath+"/data/n/lxc/w",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid17 = _errs166 === errors;}else {var valid17 = true;}if(valid17){if(data73.h !== undefined){let data77 = data73.h;const _errs168 = errors;if(!(((typeof data77 == "number") && (!(data77 % 1) && !isNaN(data77))) && (isFinite(data77)))){validate138.errors = [{instancePath:instancePath+"/data/n/lxc/h",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid17 = _errs168 === errors;}else {var valid17 = true;}if(valid17){if(data73.tone !== undefined){let data78 = data73.tone;const _errs170 = errors;if(errors === _errs170){if(typeof data78 === "string"){if(func2(data78) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/lxc/tone",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/lxc/tone",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid17 = _errs170 === errors;}else {var valid17 = true;}if(valid17){if(data73.title !== undefined){let data79 = data73.title;const _errs172 = errors;if(errors === _errs172){if(typeof data79 === "string"){if(func2(data79) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/lxc/title",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/lxc/title",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid17 = _errs172 === errors;}else {var valid17 = true;}if(valid17){if(data73.sub !== undefined){let data80 = data73.sub;const _errs174 = errors;if(errors === _errs174){if(typeof data80 === "string"){if(func2(data80) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/lxc/sub",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/lxc/sub",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid17 = _errs174 === errors;}else {var valid17 = true;}}}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/n/lxc",schemaPath:"#/properties/data/properties/n/properties/lxc/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs159 === errors;}else {var valid10 = true;}if(valid10){if(data25.ws !== undefined){let data81 = data25.ws;const _errs176 = errors;if(errors === _errs176){if(data81 && typeof data81 == "object" && !Array.isArray(data81)){let missing12;if((((((((data81.x === undefined) && (missing12 = "x")) || ((data81.y === undefined) && (missing12 = "y"))) || ((data81.w === undefined) && (missing12 = "w"))) || ((data81.h === undefined) && (missing12 = "h"))) || ((data81.tone === undefined) && (missing12 = "tone"))) || ((data81.title === undefined) && (missing12 = "title"))) || ((data81.mono === undefined) && (missing12 = "mono"))){validate138.errors = [{instancePath:instancePath+"/data/n/ws",schemaPath:"#/properties/data/properties/n/properties/ws/required",keyword:"required",params:{missingProperty: missing12},message:"must have required property '"+missing12+"'"}];return false;}else {const _errs178 = errors;for(const key13 in data81){if(!(((((((key13 === "x") || (key13 === "y")) || (key13 === "w")) || (key13 === "h")) || (key13 === "tone")) || (key13 === "title")) || (key13 === "mono"))){validate138.errors = [{instancePath:instancePath+"/data/n/ws",schemaPath:"#/properties/data/properties/n/properties/ws/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key13},message:"must NOT have additional properties"}];return false;break;}}if(_errs178 === errors){if(data81.x !== undefined){let data82 = data81.x;const _errs179 = errors;if(!(((typeof data82 == "number") && (!(data82 % 1) && !isNaN(data82))) && (isFinite(data82)))){validate138.errors = [{instancePath:instancePath+"/data/n/ws/x",schemaPath:"#/properties/data/properties/n/properties/ws/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid18 = _errs179 === errors;}else {var valid18 = true;}if(valid18){if(data81.y !== undefined){let data83 = data81.y;const _errs181 = errors;if(!(((typeof data83 == "number") && (!(data83 % 1) && !isNaN(data83))) && (isFinite(data83)))){validate138.errors = [{instancePath:instancePath+"/data/n/ws/y",schemaPath:"#/properties/data/properties/n/properties/ws/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid18 = _errs181 === errors;}else {var valid18 = true;}if(valid18){if(data81.w !== undefined){let data84 = data81.w;const _errs183 = errors;if(!(((typeof data84 == "number") && (!(data84 % 1) && !isNaN(data84))) && (isFinite(data84)))){validate138.errors = [{instancePath:instancePath+"/data/n/ws/w",schemaPath:"#/properties/data/properties/n/properties/ws/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid18 = _errs183 === errors;}else {var valid18 = true;}if(valid18){if(data81.h !== undefined){let data85 = data81.h;const _errs185 = errors;if(!(((typeof data85 == "number") && (!(data85 % 1) && !isNaN(data85))) && (isFinite(data85)))){validate138.errors = [{instancePath:instancePath+"/data/n/ws/h",schemaPath:"#/properties/data/properties/n/properties/ws/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid18 = _errs185 === errors;}else {var valid18 = true;}if(valid18){if(data81.tone !== undefined){let data86 = data81.tone;const _errs187 = errors;if(errors === _errs187){if(typeof data86 === "string"){if(func2(data86) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/ws/tone",schemaPath:"#/properties/data/properties/n/properties/ws/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/ws/tone",schemaPath:"#/properties/data/properties/n/properties/ws/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid18 = _errs187 === errors;}else {var valid18 = true;}if(valid18){if(data81.title !== undefined){let data87 = data81.title;const _errs189 = errors;if(errors === _errs189){if(typeof data87 === "string"){if(func2(data87) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/ws/title",schemaPath:"#/properties/data/properties/n/properties/ws/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/ws/title",schemaPath:"#/properties/data/properties/n/properties/ws/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid18 = _errs189 === errors;}else {var valid18 = true;}if(valid18){if(data81.mono !== undefined){const _errs191 = errors;if(typeof data81.mono !== "boolean"){validate138.errors = [{instancePath:instancePath+"/data/n/ws/mono",schemaPath:"#/properties/data/properties/n/properties/ws/properties/mono/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid18 = _errs191 === errors;}else {var valid18 = true;}}}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/n/ws",schemaPath:"#/properties/data/properties/n/properties/ws/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs176 === errors;}else {var valid10 = true;}if(valid10){if(data25.sa !== undefined){let data89 = data25.sa;const _errs193 = errors;if(errors === _errs193){if(data89 && typeof data89 == "object" && !Array.isArray(data89)){let missing13;if((((((((data89.x === undefined) && (missing13 = "x")) || ((data89.y === undefined) && (missing13 = "y"))) || ((data89.w === undefined) && (missing13 = "w"))) || ((data89.h === undefined) && (missing13 = "h"))) || ((data89.tone === undefined) && (missing13 = "tone"))) || ((data89.title === undefined) && (missing13 = "title"))) || ((data89.sub === undefined) && (missing13 = "sub"))){validate138.errors = [{instancePath:instancePath+"/data/n/sa",schemaPath:"#/properties/data/properties/n/properties/sa/required",keyword:"required",params:{missingProperty: missing13},message:"must have required property '"+missing13+"'"}];return false;}else {const _errs195 = errors;for(const key14 in data89){if(!(((((((key14 === "x") || (key14 === "y")) || (key14 === "w")) || (key14 === "h")) || (key14 === "tone")) || (key14 === "title")) || (key14 === "sub"))){validate138.errors = [{instancePath:instancePath+"/data/n/sa",schemaPath:"#/properties/data/properties/n/properties/sa/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key14},message:"must NOT have additional properties"}];return false;break;}}if(_errs195 === errors){if(data89.x !== undefined){let data90 = data89.x;const _errs196 = errors;if(!(((typeof data90 == "number") && (!(data90 % 1) && !isNaN(data90))) && (isFinite(data90)))){validate138.errors = [{instancePath:instancePath+"/data/n/sa/x",schemaPath:"#/properties/data/properties/n/properties/sa/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid19 = _errs196 === errors;}else {var valid19 = true;}if(valid19){if(data89.y !== undefined){let data91 = data89.y;const _errs198 = errors;if(!(((typeof data91 == "number") && (!(data91 % 1) && !isNaN(data91))) && (isFinite(data91)))){validate138.errors = [{instancePath:instancePath+"/data/n/sa/y",schemaPath:"#/properties/data/properties/n/properties/sa/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid19 = _errs198 === errors;}else {var valid19 = true;}if(valid19){if(data89.w !== undefined){let data92 = data89.w;const _errs200 = errors;if(!(((typeof data92 == "number") && (!(data92 % 1) && !isNaN(data92))) && (isFinite(data92)))){validate138.errors = [{instancePath:instancePath+"/data/n/sa/w",schemaPath:"#/properties/data/properties/n/properties/sa/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid19 = _errs200 === errors;}else {var valid19 = true;}if(valid19){if(data89.h !== undefined){let data93 = data89.h;const _errs202 = errors;if(!(((typeof data93 == "number") && (!(data93 % 1) && !isNaN(data93))) && (isFinite(data93)))){validate138.errors = [{instancePath:instancePath+"/data/n/sa/h",schemaPath:"#/properties/data/properties/n/properties/sa/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid19 = _errs202 === errors;}else {var valid19 = true;}if(valid19){if(data89.tone !== undefined){let data94 = data89.tone;const _errs204 = errors;if(errors === _errs204){if(typeof data94 === "string"){if(func2(data94) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/sa/tone",schemaPath:"#/properties/data/properties/n/properties/sa/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/sa/tone",schemaPath:"#/properties/data/properties/n/properties/sa/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs204 === errors;}else {var valid19 = true;}if(valid19){if(data89.title !== undefined){let data95 = data89.title;const _errs206 = errors;if(errors === _errs206){if(typeof data95 === "string"){if(func2(data95) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/sa/title",schemaPath:"#/properties/data/properties/n/properties/sa/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/sa/title",schemaPath:"#/properties/data/properties/n/properties/sa/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs206 === errors;}else {var valid19 = true;}if(valid19){if(data89.sub !== undefined){let data96 = data89.sub;const _errs208 = errors;if(errors === _errs208){if(typeof data96 === "string"){if(func2(data96) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/sa/sub",schemaPath:"#/properties/data/properties/n/properties/sa/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/sa/sub",schemaPath:"#/properties/data/properties/n/properties/sa/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs208 === errors;}else {var valid19 = true;}}}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/n/sa",schemaPath:"#/properties/data/properties/n/properties/sa/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs193 === errors;}else {var valid10 = true;}if(valid10){if(data25.sb !== undefined){let data97 = data25.sb;const _errs210 = errors;if(errors === _errs210){if(data97 && typeof data97 == "object" && !Array.isArray(data97)){let missing14;if((((((((data97.x === undefined) && (missing14 = "x")) || ((data97.y === undefined) && (missing14 = "y"))) || ((data97.w === undefined) && (missing14 = "w"))) || ((data97.h === undefined) && (missing14 = "h"))) || ((data97.tone === undefined) && (missing14 = "tone"))) || ((data97.title === undefined) && (missing14 = "title"))) || ((data97.sub === undefined) && (missing14 = "sub"))){validate138.errors = [{instancePath:instancePath+"/data/n/sb",schemaPath:"#/properties/data/properties/n/properties/sb/required",keyword:"required",params:{missingProperty: missing14},message:"must have required property '"+missing14+"'"}];return false;}else {const _errs212 = errors;for(const key15 in data97){if(!(((((((key15 === "x") || (key15 === "y")) || (key15 === "w")) || (key15 === "h")) || (key15 === "tone")) || (key15 === "title")) || (key15 === "sub"))){validate138.errors = [{instancePath:instancePath+"/data/n/sb",schemaPath:"#/properties/data/properties/n/properties/sb/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key15},message:"must NOT have additional properties"}];return false;break;}}if(_errs212 === errors){if(data97.x !== undefined){let data98 = data97.x;const _errs213 = errors;if(!(((typeof data98 == "number") && (!(data98 % 1) && !isNaN(data98))) && (isFinite(data98)))){validate138.errors = [{instancePath:instancePath+"/data/n/sb/x",schemaPath:"#/properties/data/properties/n/properties/sb/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid20 = _errs213 === errors;}else {var valid20 = true;}if(valid20){if(data97.y !== undefined){let data99 = data97.y;const _errs215 = errors;if(!(((typeof data99 == "number") && (!(data99 % 1) && !isNaN(data99))) && (isFinite(data99)))){validate138.errors = [{instancePath:instancePath+"/data/n/sb/y",schemaPath:"#/properties/data/properties/n/properties/sb/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid20 = _errs215 === errors;}else {var valid20 = true;}if(valid20){if(data97.w !== undefined){let data100 = data97.w;const _errs217 = errors;if(!(((typeof data100 == "number") && (!(data100 % 1) && !isNaN(data100))) && (isFinite(data100)))){validate138.errors = [{instancePath:instancePath+"/data/n/sb/w",schemaPath:"#/properties/data/properties/n/properties/sb/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid20 = _errs217 === errors;}else {var valid20 = true;}if(valid20){if(data97.h !== undefined){let data101 = data97.h;const _errs219 = errors;if(!(((typeof data101 == "number") && (!(data101 % 1) && !isNaN(data101))) && (isFinite(data101)))){validate138.errors = [{instancePath:instancePath+"/data/n/sb/h",schemaPath:"#/properties/data/properties/n/properties/sb/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid20 = _errs219 === errors;}else {var valid20 = true;}if(valid20){if(data97.tone !== undefined){let data102 = data97.tone;const _errs221 = errors;if(errors === _errs221){if(typeof data102 === "string"){if(func2(data102) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/sb/tone",schemaPath:"#/properties/data/properties/n/properties/sb/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/sb/tone",schemaPath:"#/properties/data/properties/n/properties/sb/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid20 = _errs221 === errors;}else {var valid20 = true;}if(valid20){if(data97.title !== undefined){let data103 = data97.title;const _errs223 = errors;if(errors === _errs223){if(typeof data103 === "string"){if(func2(data103) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/sb/title",schemaPath:"#/properties/data/properties/n/properties/sb/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/sb/title",schemaPath:"#/properties/data/properties/n/properties/sb/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid20 = _errs223 === errors;}else {var valid20 = true;}if(valid20){if(data97.sub !== undefined){let data104 = data97.sub;const _errs225 = errors;if(errors === _errs225){if(typeof data104 === "string"){if(func2(data104) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/sb/sub",schemaPath:"#/properties/data/properties/n/properties/sb/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/sb/sub",schemaPath:"#/properties/data/properties/n/properties/sb/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid20 = _errs225 === errors;}else {var valid20 = true;}}}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/n/sb",schemaPath:"#/properties/data/properties/n/properties/sb/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs210 === errors;}else {var valid10 = true;}if(valid10){if(data25.sc !== undefined){let data105 = data25.sc;const _errs227 = errors;if(errors === _errs227){if(data105 && typeof data105 == "object" && !Array.isArray(data105)){let missing15;if((((((((data105.x === undefined) && (missing15 = "x")) || ((data105.y === undefined) && (missing15 = "y"))) || ((data105.w === undefined) && (missing15 = "w"))) || ((data105.h === undefined) && (missing15 = "h"))) || ((data105.tone === undefined) && (missing15 = "tone"))) || ((data105.title === undefined) && (missing15 = "title"))) || ((data105.sub === undefined) && (missing15 = "sub"))){validate138.errors = [{instancePath:instancePath+"/data/n/sc",schemaPath:"#/properties/data/properties/n/properties/sc/required",keyword:"required",params:{missingProperty: missing15},message:"must have required property '"+missing15+"'"}];return false;}else {const _errs229 = errors;for(const key16 in data105){if(!(((((((key16 === "x") || (key16 === "y")) || (key16 === "w")) || (key16 === "h")) || (key16 === "tone")) || (key16 === "title")) || (key16 === "sub"))){validate138.errors = [{instancePath:instancePath+"/data/n/sc",schemaPath:"#/properties/data/properties/n/properties/sc/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key16},message:"must NOT have additional properties"}];return false;break;}}if(_errs229 === errors){if(data105.x !== undefined){let data106 = data105.x;const _errs230 = errors;if(!(((typeof data106 == "number") && (!(data106 % 1) && !isNaN(data106))) && (isFinite(data106)))){validate138.errors = [{instancePath:instancePath+"/data/n/sc/x",schemaPath:"#/properties/data/properties/n/properties/sc/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid21 = _errs230 === errors;}else {var valid21 = true;}if(valid21){if(data105.y !== undefined){let data107 = data105.y;const _errs232 = errors;if(!(((typeof data107 == "number") && (!(data107 % 1) && !isNaN(data107))) && (isFinite(data107)))){validate138.errors = [{instancePath:instancePath+"/data/n/sc/y",schemaPath:"#/properties/data/properties/n/properties/sc/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid21 = _errs232 === errors;}else {var valid21 = true;}if(valid21){if(data105.w !== undefined){let data108 = data105.w;const _errs234 = errors;if(!(((typeof data108 == "number") && (!(data108 % 1) && !isNaN(data108))) && (isFinite(data108)))){validate138.errors = [{instancePath:instancePath+"/data/n/sc/w",schemaPath:"#/properties/data/properties/n/properties/sc/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid21 = _errs234 === errors;}else {var valid21 = true;}if(valid21){if(data105.h !== undefined){let data109 = data105.h;const _errs236 = errors;if(!(((typeof data109 == "number") && (!(data109 % 1) && !isNaN(data109))) && (isFinite(data109)))){validate138.errors = [{instancePath:instancePath+"/data/n/sc/h",schemaPath:"#/properties/data/properties/n/properties/sc/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid21 = _errs236 === errors;}else {var valid21 = true;}if(valid21){if(data105.tone !== undefined){let data110 = data105.tone;const _errs238 = errors;if(errors === _errs238){if(typeof data110 === "string"){if(func2(data110) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/sc/tone",schemaPath:"#/properties/data/properties/n/properties/sc/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/sc/tone",schemaPath:"#/properties/data/properties/n/properties/sc/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid21 = _errs238 === errors;}else {var valid21 = true;}if(valid21){if(data105.title !== undefined){let data111 = data105.title;const _errs240 = errors;if(errors === _errs240){if(typeof data111 === "string"){if(func2(data111) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/sc/title",schemaPath:"#/properties/data/properties/n/properties/sc/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/sc/title",schemaPath:"#/properties/data/properties/n/properties/sc/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid21 = _errs240 === errors;}else {var valid21 = true;}if(valid21){if(data105.sub !== undefined){let data112 = data105.sub;const _errs242 = errors;if(errors === _errs242){if(typeof data112 === "string"){if(func2(data112) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/sc/sub",schemaPath:"#/properties/data/properties/n/properties/sc/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/sc/sub",schemaPath:"#/properties/data/properties/n/properties/sc/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid21 = _errs242 === errors;}else {var valid21 = true;}}}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/n/sc",schemaPath:"#/properties/data/properties/n/properties/sc/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs227 === errors;}else {var valid10 = true;}if(valid10){if(data25.sd !== undefined){let data113 = data25.sd;const _errs244 = errors;if(errors === _errs244){if(data113 && typeof data113 == "object" && !Array.isArray(data113)){let missing16;if((((((((data113.x === undefined) && (missing16 = "x")) || ((data113.y === undefined) && (missing16 = "y"))) || ((data113.w === undefined) && (missing16 = "w"))) || ((data113.h === undefined) && (missing16 = "h"))) || ((data113.tone === undefined) && (missing16 = "tone"))) || ((data113.title === undefined) && (missing16 = "title"))) || ((data113.sub === undefined) && (missing16 = "sub"))){validate138.errors = [{instancePath:instancePath+"/data/n/sd",schemaPath:"#/properties/data/properties/n/properties/sd/required",keyword:"required",params:{missingProperty: missing16},message:"must have required property '"+missing16+"'"}];return false;}else {const _errs246 = errors;for(const key17 in data113){if(!(((((((key17 === "x") || (key17 === "y")) || (key17 === "w")) || (key17 === "h")) || (key17 === "tone")) || (key17 === "title")) || (key17 === "sub"))){validate138.errors = [{instancePath:instancePath+"/data/n/sd",schemaPath:"#/properties/data/properties/n/properties/sd/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key17},message:"must NOT have additional properties"}];return false;break;}}if(_errs246 === errors){if(data113.x !== undefined){let data114 = data113.x;const _errs247 = errors;if(!(((typeof data114 == "number") && (!(data114 % 1) && !isNaN(data114))) && (isFinite(data114)))){validate138.errors = [{instancePath:instancePath+"/data/n/sd/x",schemaPath:"#/properties/data/properties/n/properties/sd/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid22 = _errs247 === errors;}else {var valid22 = true;}if(valid22){if(data113.y !== undefined){let data115 = data113.y;const _errs249 = errors;if(!(((typeof data115 == "number") && (!(data115 % 1) && !isNaN(data115))) && (isFinite(data115)))){validate138.errors = [{instancePath:instancePath+"/data/n/sd/y",schemaPath:"#/properties/data/properties/n/properties/sd/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid22 = _errs249 === errors;}else {var valid22 = true;}if(valid22){if(data113.w !== undefined){let data116 = data113.w;const _errs251 = errors;if(!(((typeof data116 == "number") && (!(data116 % 1) && !isNaN(data116))) && (isFinite(data116)))){validate138.errors = [{instancePath:instancePath+"/data/n/sd/w",schemaPath:"#/properties/data/properties/n/properties/sd/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid22 = _errs251 === errors;}else {var valid22 = true;}if(valid22){if(data113.h !== undefined){let data117 = data113.h;const _errs253 = errors;if(!(((typeof data117 == "number") && (!(data117 % 1) && !isNaN(data117))) && (isFinite(data117)))){validate138.errors = [{instancePath:instancePath+"/data/n/sd/h",schemaPath:"#/properties/data/properties/n/properties/sd/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid22 = _errs253 === errors;}else {var valid22 = true;}if(valid22){if(data113.tone !== undefined){let data118 = data113.tone;const _errs255 = errors;if(errors === _errs255){if(typeof data118 === "string"){if(func2(data118) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/sd/tone",schemaPath:"#/properties/data/properties/n/properties/sd/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/sd/tone",schemaPath:"#/properties/data/properties/n/properties/sd/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid22 = _errs255 === errors;}else {var valid22 = true;}if(valid22){if(data113.title !== undefined){let data119 = data113.title;const _errs257 = errors;if(errors === _errs257){if(typeof data119 === "string"){if(func2(data119) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/sd/title",schemaPath:"#/properties/data/properties/n/properties/sd/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/sd/title",schemaPath:"#/properties/data/properties/n/properties/sd/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid22 = _errs257 === errors;}else {var valid22 = true;}if(valid22){if(data113.sub !== undefined){let data120 = data113.sub;const _errs259 = errors;if(errors === _errs259){if(typeof data120 === "string"){if(func2(data120) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/sd/sub",schemaPath:"#/properties/data/properties/n/properties/sd/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/sd/sub",schemaPath:"#/properties/data/properties/n/properties/sd/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid22 = _errs259 === errors;}else {var valid22 = true;}}}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/n/sd",schemaPath:"#/properties/data/properties/n/properties/sd/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs244 === errors;}else {var valid10 = true;}if(valid10){if(data25.ut !== undefined){let data121 = data25.ut;const _errs261 = errors;if(errors === _errs261){if(data121 && typeof data121 == "object" && !Array.isArray(data121)){let missing17;if(((((((((data121.x === undefined) && (missing17 = "x")) || ((data121.y === undefined) && (missing17 = "y"))) || ((data121.w === undefined) && (missing17 = "w"))) || ((data121.h === undefined) && (missing17 = "h"))) || ((data121.tone === undefined) && (missing17 = "tone"))) || ((data121.title === undefined) && (missing17 = "title"))) || ((data121.sub === undefined) && (missing17 = "sub"))) || ((data121.mono === undefined) && (missing17 = "mono"))){validate138.errors = [{instancePath:instancePath+"/data/n/ut",schemaPath:"#/properties/data/properties/n/properties/ut/required",keyword:"required",params:{missingProperty: missing17},message:"must have required property '"+missing17+"'"}];return false;}else {const _errs263 = errors;for(const key18 in data121){if(!((((((((key18 === "x") || (key18 === "y")) || (key18 === "w")) || (key18 === "h")) || (key18 === "tone")) || (key18 === "title")) || (key18 === "sub")) || (key18 === "mono"))){validate138.errors = [{instancePath:instancePath+"/data/n/ut",schemaPath:"#/properties/data/properties/n/properties/ut/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key18},message:"must NOT have additional properties"}];return false;break;}}if(_errs263 === errors){if(data121.x !== undefined){let data122 = data121.x;const _errs264 = errors;if(!(((typeof data122 == "number") && (!(data122 % 1) && !isNaN(data122))) && (isFinite(data122)))){validate138.errors = [{instancePath:instancePath+"/data/n/ut/x",schemaPath:"#/properties/data/properties/n/properties/ut/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid23 = _errs264 === errors;}else {var valid23 = true;}if(valid23){if(data121.y !== undefined){let data123 = data121.y;const _errs266 = errors;if(!(((typeof data123 == "number") && (!(data123 % 1) && !isNaN(data123))) && (isFinite(data123)))){validate138.errors = [{instancePath:instancePath+"/data/n/ut/y",schemaPath:"#/properties/data/properties/n/properties/ut/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid23 = _errs266 === errors;}else {var valid23 = true;}if(valid23){if(data121.w !== undefined){let data124 = data121.w;const _errs268 = errors;if(!(((typeof data124 == "number") && (!(data124 % 1) && !isNaN(data124))) && (isFinite(data124)))){validate138.errors = [{instancePath:instancePath+"/data/n/ut/w",schemaPath:"#/properties/data/properties/n/properties/ut/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid23 = _errs268 === errors;}else {var valid23 = true;}if(valid23){if(data121.h !== undefined){let data125 = data121.h;const _errs270 = errors;if(!(((typeof data125 == "number") && (!(data125 % 1) && !isNaN(data125))) && (isFinite(data125)))){validate138.errors = [{instancePath:instancePath+"/data/n/ut/h",schemaPath:"#/properties/data/properties/n/properties/ut/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid23 = _errs270 === errors;}else {var valid23 = true;}if(valid23){if(data121.tone !== undefined){let data126 = data121.tone;const _errs272 = errors;if(errors === _errs272){if(typeof data126 === "string"){if(func2(data126) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/ut/tone",schemaPath:"#/properties/data/properties/n/properties/ut/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/ut/tone",schemaPath:"#/properties/data/properties/n/properties/ut/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid23 = _errs272 === errors;}else {var valid23 = true;}if(valid23){if(data121.title !== undefined){let data127 = data121.title;const _errs274 = errors;if(errors === _errs274){if(typeof data127 === "string"){if(func2(data127) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/ut/title",schemaPath:"#/properties/data/properties/n/properties/ut/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/ut/title",schemaPath:"#/properties/data/properties/n/properties/ut/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid23 = _errs274 === errors;}else {var valid23 = true;}if(valid23){if(data121.sub !== undefined){let data128 = data121.sub;const _errs276 = errors;if(errors === _errs276){if(typeof data128 === "string"){if(func2(data128) > 4000){validate138.errors = [{instancePath:instancePath+"/data/n/ut/sub",schemaPath:"#/properties/data/properties/n/properties/ut/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/n/ut/sub",schemaPath:"#/properties/data/properties/n/properties/ut/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid23 = _errs276 === errors;}else {var valid23 = true;}if(valid23){if(data121.mono !== undefined){const _errs278 = errors;if(typeof data121.mono !== "boolean"){validate138.errors = [{instancePath:instancePath+"/data/n/ut/mono",schemaPath:"#/properties/data/properties/n/properties/ut/properties/mono/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid23 = _errs278 === errors;}else {var valid23 = true;}}}}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/n/ut",schemaPath:"#/properties/data/properties/n/properties/ut/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs261 === errors;}else {var valid10 = true;}}}}}}}}}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/n",schemaPath:"#/properties/data/properties/n/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs56 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data130 = data2.initialSelection1;const _errs280 = errors;if(errors === _errs280){if(typeof data130 === "string"){if(func2(data130) > 4000){validate138.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs280 === errors;}else {var valid2 = true;}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data131 = data.dependencies;const _errs282 = errors;if(errors === _errs282){if(data131 && typeof data131 == "object" && !Array.isArray(data131)){for(const key19 in data131){const _errs284 = errors;if(typeof key19 === "string"){if(!pattern82.test(key19)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key19};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid24 = _errs284 === errors;if(!valid24){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key19},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate138.errors = vErrors;return false;break;}}if(valid24){for(const key20 in data131){let data132 = data131[key20];const _errs286 = errors;if(errors === _errs286){if(data132 && typeof data132 == "object" && !Array.isArray(data132)){const _errs288 = errors;for(const key21 in data132){if(!((key21 === "text") || (key21 === "data"))){validate138.errors = [{instancePath:instancePath+"/dependencies/" + key20.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key21},message:"must NOT have additional properties"}];return false;break;}}if(_errs288 === errors){if(data132.text !== undefined){let data133 = data132.text;const _errs289 = errors;if(errors === _errs289){if(data133 && typeof data133 == "object" && !Array.isArray(data133)){for(const key22 in data133){let data134 = data133[key22];const _errs292 = errors;if(errors === _errs292){if(typeof data134 === "string"){if(func2(data134) > 4000){validate138.errors = [{instancePath:instancePath+"/dependencies/" + key20.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key22.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/dependencies/" + key20.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key22.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid27 = _errs292 === errors;if(!valid27){break;}}}else {validate138.errors = [{instancePath:instancePath+"/dependencies/" + key20.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid26 = _errs289 === errors;}else {var valid26 = true;}if(valid26){if(data132.data !== undefined){let data135 = data132.data;const _errs294 = errors;if(!(data135 && typeof data135 == "object" && !Array.isArray(data135))){validate138.errors = [{instancePath:instancePath+"/dependencies/" + key20.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid26 = _errs294 === errors;}else {var valid26 = true;}}}}else {validate138.errors = [{instancePath:instancePath+"/dependencies/" + key20.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid25 = _errs286 === errors;if(!valid25){break;}}}}else {validate138.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs282 === errors;}else {var valid0 = true;}}}}}}else {validate138.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate138.errors = vErrors;return errors === 0;}validate138.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_loop_unroller = validate139;const schema209 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/loop-unroller.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":57,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["initialSelection1"],"properties":{"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate139(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/loop-unroller.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate139.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate139.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate139.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 57){validate139.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 57},message:"must NOT have more than 57 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate139.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate139.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1")){validate139.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "initialSelection1")){validate139.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.initialSelection1 !== undefined){let data3 = data2.initialSelection1;const _errs10 = errors;if(errors === _errs10){if(typeof data3 === "string"){if(func2(data3) > 4000){validate139.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}}}else {validate139.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate139.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate139.errors = vErrors;return errors === 0;}validate139.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_magic_variables = validate140;const schema210 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/magic-variables.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["inventory","fqdn","initialSelection1"],"properties":{"inventory":{"type":"string","maxLength":4000},"fqdn":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"initialSelection1":{"type":"string","maxLength":4000}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate140(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/magic-variables.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate140.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate140.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate140.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate140.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate140.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate140.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate140.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((((data2.inventory === undefined) && (missing1 = "inventory")) || ((data2.fqdn === undefined) && (missing1 = "fqdn"))) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate140.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(((key2 === "inventory") || (key2 === "fqdn")) || (key2 === "initialSelection1"))){validate140.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.inventory !== undefined){let data3 = data2.inventory;const _errs10 = errors;if(errors === _errs10){if(typeof data3 === "string"){if(func2(data3) > 4000){validate140.errors = [{instancePath:instancePath+"/data/inventory",schemaPath:"#/properties/data/properties/inventory/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate140.errors = [{instancePath:instancePath+"/data/inventory",schemaPath:"#/properties/data/properties/inventory/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.fqdn !== undefined){let data4 = data2.fqdn;const _errs12 = errors;if(errors === _errs12){if(data4 && typeof data4 == "object" && !Array.isArray(data4)){if(Object.keys(data4).length > 30){validate140.errors = [{instancePath:instancePath+"/data/fqdn",schemaPath:"#/properties/data/properties/fqdn/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data4){let data5 = data4[key3];const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate140.errors = [{instancePath:instancePath+"/data/fqdn/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/fqdn/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate140.errors = [{instancePath:instancePath+"/data/fqdn/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/fqdn/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs15 === errors;if(!valid3){break;}}}}else {validate140.errors = [{instancePath:instancePath+"/data/fqdn",schemaPath:"#/properties/data/properties/fqdn/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs12 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data6 = data2.initialSelection1;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate140.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate140.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}}}}}}else {validate140.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data7 = data.dependencies;const _errs19 = errors;if(errors === _errs19){if(data7 && typeof data7 == "object" && !Array.isArray(data7)){for(const key4 in data7){const _errs21 = errors;if(typeof key4 === "string"){if(!pattern82.test(key4)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key4};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid4 = _errs21 === errors;if(!valid4){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key4},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate140.errors = vErrors;return false;break;}}if(valid4){for(const key5 in data7){let data8 = data7[key5];const _errs23 = errors;if(errors === _errs23){if(data8 && typeof data8 == "object" && !Array.isArray(data8)){const _errs25 = errors;for(const key6 in data8){if(!((key6 === "text") || (key6 === "data"))){validate140.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"}];return false;break;}}if(_errs25 === errors){if(data8.text !== undefined){let data9 = data8.text;const _errs26 = errors;if(errors === _errs26){if(data9 && typeof data9 == "object" && !Array.isArray(data9)){for(const key7 in data9){let data10 = data9[key7];const _errs29 = errors;if(errors === _errs29){if(typeof data10 === "string"){if(func2(data10) > 4000){validate140.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate140.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs29 === errors;if(!valid7){break;}}}else {validate140.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid6 = _errs26 === errors;}else {var valid6 = true;}if(valid6){if(data8.data !== undefined){let data11 = data8.data;const _errs31 = errors;if(!(data11 && typeof data11 == "object" && !Array.isArray(data11))){validate140.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid6 = _errs31 === errors;}else {var valid6 = true;}}}}else {validate140.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs23 === errors;if(!valid5){break;}}}}else {validate140.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs19 === errors;}else {var valid0 = true;}}}}}}else {validate140.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate140.errors = vErrors;return errors === 0;}validate140.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_mode_calculator = validate141;const schema211 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/mode-calculator.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":66,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["who","presets"],"properties":{"who":{"type":"array","maxItems":20,"items":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}},"presets":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate141(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/mode-calculator.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate141.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate141.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate141.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 66){validate141.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 66},message:"must NOT have more than 66 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate141.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate141.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.who === undefined) && (missing1 = "who")) || ((data2.presets === undefined) && (missing1 = "presets"))){validate141.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "who") || (key2 === "presets"))){validate141.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.who !== undefined){let data3 = data2.who;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate141.errors = [{instancePath:instancePath+"/data/who",schemaPath:"#/properties/data/properties/who/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 20){validate141.errors = [{instancePath:instancePath+"/data/who/" + i0,schemaPath:"#/properties/data/properties/who/items/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid4 = true;const len1 = data4.length;for(let i1=0; i1 4000){validate141.errors = [{instancePath:instancePath+"/data/who/" + i0+"/" + i1,schemaPath:"#/properties/data/properties/who/items/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/data/who/" + i0+"/" + i1,schemaPath:"#/properties/data/properties/who/items/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs14 === errors;if(!valid4){break;}}}}else {validate141.errors = [{instancePath:instancePath+"/data/who/" + i0,schemaPath:"#/properties/data/properties/who/items/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate141.errors = [{instancePath:instancePath+"/data/who",schemaPath:"#/properties/data/properties/who/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.presets !== undefined){let data6 = data2.presets;const _errs16 = errors;if(errors === _errs16){if(Array.isArray(data6)){if(data6.length > 20){validate141.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len2 = data6.length;for(let i2=0; i2 4000){validate141.errors = [{instancePath:instancePath+"/data/presets/" + i2,schemaPath:"#/properties/data/properties/presets/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/data/presets/" + i2,schemaPath:"#/properties/data/properties/presets/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs18 === errors;if(!valid5){break;}}}}else {validate141.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs16 === errors;}else {var valid2 = true;}}}}}else {validate141.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data8 = data.dependencies;const _errs20 = errors;if(errors === _errs20){if(data8 && typeof data8 == "object" && !Array.isArray(data8)){for(const key3 in data8){const _errs22 = errors;if(typeof key3 === "string"){if(!pattern82.test(key3)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key3};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid6 = _errs22 === errors;if(!valid6){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key3},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate141.errors = vErrors;return false;break;}}if(valid6){for(const key4 in data8){let data9 = data8[key4];const _errs24 = errors;if(errors === _errs24){if(data9 && typeof data9 == "object" && !Array.isArray(data9)){const _errs26 = errors;for(const key5 in data9){if(!((key5 === "text") || (key5 === "data"))){validate141.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs26 === errors){if(data9.text !== undefined){let data10 = data9.text;const _errs27 = errors;if(errors === _errs27){if(data10 && typeof data10 == "object" && !Array.isArray(data10)){for(const key6 in data10){let data11 = data10[key6];const _errs30 = errors;if(errors === _errs30){if(typeof data11 === "string"){if(func2(data11) > 4000){validate141.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid9 = _errs30 === errors;if(!valid9){break;}}}else {validate141.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid8 = _errs27 === errors;}else {var valid8 = true;}if(valid8){if(data9.data !== undefined){let data12 = data9.data;const _errs32 = errors;if(!(data12 && typeof data12 == "object" && !Array.isArray(data12))){validate141.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid8 = _errs32 === errors;}else {var valid8 = true;}}}}else {validate141.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid7 = _errs24 === errors;if(!valid7){break;}}}}else {validate141.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs20 === errors;}else {var valid0 = true;}}}}}}else {validate141.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate141.errors = vErrors;return errors === 0;}validate141.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_module_explorer = validate142;const schema212 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/module-explorer.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["modules","cats","initialSelection1","initialSelection2"],"properties":{"modules":{"type":"array","maxItems":34,"items":{"type":"object","additionalProperties":false,"required":["fqcn","cat","text"],"properties":{"fqcn":{"type":"string","maxLength":4000},"cat":{"type":"string","maxLength":4000},"text":{"type":"string","maxLength":4000},"warn":{"type":"boolean"}}}},"cats":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"initialSelection1":{"type":"string","maxLength":4000},"initialSelection2":{"type":"string","maxLength":4000}}}}};function validate142(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/module-explorer.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate142.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate142.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate142.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate142.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate142.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate142.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate142.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((((data2.modules === undefined) && (missing1 = "modules")) || ((data2.cats === undefined) && (missing1 = "cats"))) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))) || ((data2.initialSelection2 === undefined) && (missing1 = "initialSelection2"))){validate142.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((((key2 === "modules") || (key2 === "cats")) || (key2 === "initialSelection1")) || (key2 === "initialSelection2"))){validate142.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.modules !== undefined){let data3 = data2.modules;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 34){validate142.errors = [{instancePath:instancePath+"/data/modules",schemaPath:"#/properties/data/properties/modules/maxItems",keyword:"maxItems",params:{limit: 34},message:"must NOT have more than 34 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate142.errors = [{instancePath:instancePath+"/data/modules/" + i0+"/fqcn",schemaPath:"#/properties/data/properties/modules/items/properties/fqcn/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate142.errors = [{instancePath:instancePath+"/data/modules/" + i0+"/fqcn",schemaPath:"#/properties/data/properties/modules/items/properties/fqcn/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.cat !== undefined){let data6 = data4.cat;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate142.errors = [{instancePath:instancePath+"/data/modules/" + i0+"/cat",schemaPath:"#/properties/data/properties/modules/items/properties/cat/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate142.errors = [{instancePath:instancePath+"/data/modules/" + i0+"/cat",schemaPath:"#/properties/data/properties/modules/items/properties/cat/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.text !== undefined){let data7 = data4.text;const _errs19 = errors;if(errors === _errs19){if(typeof data7 === "string"){if(func2(data7) > 4000){validate142.errors = [{instancePath:instancePath+"/data/modules/" + i0+"/text",schemaPath:"#/properties/data/properties/modules/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate142.errors = [{instancePath:instancePath+"/data/modules/" + i0+"/text",schemaPath:"#/properties/data/properties/modules/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data4.warn !== undefined){const _errs21 = errors;if(typeof data4.warn !== "boolean"){validate142.errors = [{instancePath:instancePath+"/data/modules/" + i0+"/warn",schemaPath:"#/properties/data/properties/modules/items/properties/warn/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs21 === errors;}else {var valid4 = true;}}}}}}}else {validate142.errors = [{instancePath:instancePath+"/data/modules/" + i0,schemaPath:"#/properties/data/properties/modules/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate142.errors = [{instancePath:instancePath+"/data/modules",schemaPath:"#/properties/data/properties/modules/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.cats !== undefined){let data9 = data2.cats;const _errs23 = errors;if(errors === _errs23){if(Array.isArray(data9)){if(data9.length > 20){validate142.errors = [{instancePath:instancePath+"/data/cats",schemaPath:"#/properties/data/properties/cats/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data9.length;for(let i1=0; i1 4000){validate142.errors = [{instancePath:instancePath+"/data/cats/" + i1,schemaPath:"#/properties/data/properties/cats/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate142.errors = [{instancePath:instancePath+"/data/cats/" + i1,schemaPath:"#/properties/data/properties/cats/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs25 === errors;if(!valid5){break;}}}}else {validate142.errors = [{instancePath:instancePath+"/data/cats",schemaPath:"#/properties/data/properties/cats/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs23 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data11 = data2.initialSelection1;const _errs27 = errors;if(errors === _errs27){if(typeof data11 === "string"){if(func2(data11) > 4000){validate142.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate142.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs27 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection2 !== undefined){let data12 = data2.initialSelection2;const _errs29 = errors;if(errors === _errs29){if(typeof data12 === "string"){if(func2(data12) > 4000){validate142.errors = [{instancePath:instancePath+"/data/initialSelection2",schemaPath:"#/properties/data/properties/initialSelection2/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate142.errors = [{instancePath:instancePath+"/data/initialSelection2",schemaPath:"#/properties/data/properties/initialSelection2/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs29 === errors;}else {var valid2 = true;}}}}}}}else {validate142.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate142.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate142.errors = vErrors;return errors === 0;}validate142.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_play_order = validate143;const schema213 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/play-order.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["written","run"],"properties":{"written":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["id","label","lines"],"properties":{"id":{"type":"string","maxLength":4000},"label":{"type":"string","maxLength":4000},"lines":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}},"run":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["src","text","note"],"properties":{"src":{"type":"string","maxLength":4000},"text":{"type":"string","maxLength":4000},"note":{"type":"string","maxLength":4000},"handler":{"type":"boolean"}}}}}}}};function validate143(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/play-order.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate143.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate143.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate143.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate143.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate143.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate143.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate143.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.written === undefined) && (missing1 = "written")) || ((data2.run === undefined) && (missing1 = "run"))){validate143.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "written") || (key2 === "run"))){validate143.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.written !== undefined){let data3 = data2.written;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate143.errors = [{instancePath:instancePath+"/data/written",schemaPath:"#/properties/data/properties/written/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate143.errors = [{instancePath:instancePath+"/data/written/" + i0+"/id",schemaPath:"#/properties/data/properties/written/items/properties/id/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate143.errors = [{instancePath:instancePath+"/data/written/" + i0+"/id",schemaPath:"#/properties/data/properties/written/items/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.label !== undefined){let data6 = data4.label;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate143.errors = [{instancePath:instancePath+"/data/written/" + i0+"/label",schemaPath:"#/properties/data/properties/written/items/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate143.errors = [{instancePath:instancePath+"/data/written/" + i0+"/label",schemaPath:"#/properties/data/properties/written/items/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.lines !== undefined){let data7 = data4.lines;const _errs19 = errors;if(errors === _errs19){if(Array.isArray(data7)){if(data7.length > 20){validate143.errors = [{instancePath:instancePath+"/data/written/" + i0+"/lines",schemaPath:"#/properties/data/properties/written/items/properties/lines/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data7.length;for(let i1=0; i1 4000){validate143.errors = [{instancePath:instancePath+"/data/written/" + i0+"/lines/" + i1,schemaPath:"#/properties/data/properties/written/items/properties/lines/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate143.errors = [{instancePath:instancePath+"/data/written/" + i0+"/lines/" + i1,schemaPath:"#/properties/data/properties/written/items/properties/lines/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs21 === errors;if(!valid5){break;}}}}else {validate143.errors = [{instancePath:instancePath+"/data/written/" + i0+"/lines",schemaPath:"#/properties/data/properties/written/items/properties/lines/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs19 === errors;}else {var valid4 = true;}}}}}}else {validate143.errors = [{instancePath:instancePath+"/data/written/" + i0,schemaPath:"#/properties/data/properties/written/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate143.errors = [{instancePath:instancePath+"/data/written",schemaPath:"#/properties/data/properties/written/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.run !== undefined){let data9 = data2.run;const _errs23 = errors;if(errors === _errs23){if(Array.isArray(data9)){if(data9.length > 20){validate143.errors = [{instancePath:instancePath+"/data/run",schemaPath:"#/properties/data/properties/run/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid6 = true;const len2 = data9.length;for(let i2=0; i2 4000){validate143.errors = [{instancePath:instancePath+"/data/run/" + i2+"/src",schemaPath:"#/properties/data/properties/run/items/properties/src/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate143.errors = [{instancePath:instancePath+"/data/run/" + i2+"/src",schemaPath:"#/properties/data/properties/run/items/properties/src/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs28 === errors;}else {var valid7 = true;}if(valid7){if(data10.text !== undefined){let data12 = data10.text;const _errs30 = errors;if(errors === _errs30){if(typeof data12 === "string"){if(func2(data12) > 4000){validate143.errors = [{instancePath:instancePath+"/data/run/" + i2+"/text",schemaPath:"#/properties/data/properties/run/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate143.errors = [{instancePath:instancePath+"/data/run/" + i2+"/text",schemaPath:"#/properties/data/properties/run/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs30 === errors;}else {var valid7 = true;}if(valid7){if(data10.note !== undefined){let data13 = data10.note;const _errs32 = errors;if(errors === _errs32){if(typeof data13 === "string"){if(func2(data13) > 4000){validate143.errors = [{instancePath:instancePath+"/data/run/" + i2+"/note",schemaPath:"#/properties/data/properties/run/items/properties/note/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate143.errors = [{instancePath:instancePath+"/data/run/" + i2+"/note",schemaPath:"#/properties/data/properties/run/items/properties/note/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs32 === errors;}else {var valid7 = true;}if(valid7){if(data10.handler !== undefined){const _errs34 = errors;if(typeof data10.handler !== "boolean"){validate143.errors = [{instancePath:instancePath+"/data/run/" + i2+"/handler",schemaPath:"#/properties/data/properties/run/items/properties/handler/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid7 = _errs34 === errors;}else {var valid7 = true;}}}}}}}else {validate143.errors = [{instancePath:instancePath+"/data/run/" + i2,schemaPath:"#/properties/data/properties/run/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid6 = _errs25 === errors;if(!valid6){break;}}}}else {validate143.errors = [{instancePath:instancePath+"/data/run",schemaPath:"#/properties/data/properties/run/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs23 === errors;}else {var valid2 = true;}}}}}else {validate143.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate143.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate143.errors = vErrors;return errors === 0;}validate143.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_play_recap = validate144;const schema214 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/play-recap.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["counters","initialSelection1"],"properties":{"counters":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["key","value","tone","text"],"properties":{"key":{"type":"string","maxLength":4000},"value":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"text":{"type":"string","maxLength":4000}}}},"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate144(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/play-recap.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate144.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate144.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate144.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate144.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate144.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate144.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate144.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.counters === undefined) && (missing1 = "counters")) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate144.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "counters") || (key2 === "initialSelection1"))){validate144.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.counters !== undefined){let data3 = data2.counters;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate144.errors = [{instancePath:instancePath+"/data/counters",schemaPath:"#/properties/data/properties/counters/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate144.errors = [{instancePath:instancePath+"/data/counters/" + i0+"/key",schemaPath:"#/properties/data/properties/counters/items/properties/key/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate144.errors = [{instancePath:instancePath+"/data/counters/" + i0+"/key",schemaPath:"#/properties/data/properties/counters/items/properties/key/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.value !== undefined){let data6 = data4.value;const _errs17 = errors;if(!(((typeof data6 == "number") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))){validate144.errors = [{instancePath:instancePath+"/data/counters/" + i0+"/value",schemaPath:"#/properties/data/properties/counters/items/properties/value/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.tone !== undefined){let data7 = data4.tone;const _errs19 = errors;if(errors === _errs19){if(typeof data7 === "string"){if(func2(data7) > 4000){validate144.errors = [{instancePath:instancePath+"/data/counters/" + i0+"/tone",schemaPath:"#/properties/data/properties/counters/items/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate144.errors = [{instancePath:instancePath+"/data/counters/" + i0+"/tone",schemaPath:"#/properties/data/properties/counters/items/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data4.text !== undefined){let data8 = data4.text;const _errs21 = errors;if(errors === _errs21){if(typeof data8 === "string"){if(func2(data8) > 4000){validate144.errors = [{instancePath:instancePath+"/data/counters/" + i0+"/text",schemaPath:"#/properties/data/properties/counters/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate144.errors = [{instancePath:instancePath+"/data/counters/" + i0+"/text",schemaPath:"#/properties/data/properties/counters/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs21 === errors;}else {var valid4 = true;}}}}}}}else {validate144.errors = [{instancePath:instancePath+"/data/counters/" + i0,schemaPath:"#/properties/data/properties/counters/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate144.errors = [{instancePath:instancePath+"/data/counters",schemaPath:"#/properties/data/properties/counters/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data9 = data2.initialSelection1;const _errs23 = errors;if(errors === _errs23){if(typeof data9 === "string"){if(func2(data9) > 4000){validate144.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate144.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs23 === errors;}else {var valid2 = true;}}}}}else {validate144.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate144.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate144.errors = vErrors;return errors === 0;}validate144.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_precedence_resolver = validate145;const schema215 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/precedence-resolver.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false},"props":{"type":"object","additionalProperties":false,"required":["title","items","fallback"],"properties":{"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000},"items":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["label","detail"],"properties":{"label":{"type":"string","maxLength":4000},"detail":{"type":"string","maxLength":4000},"on":{"type":"boolean"}}}},"fallback":{"type":"object","additionalProperties":false,"required":["label","detail"],"properties":{"label":{"type":"string","maxLength":4000},"detail":{"type":"string","maxLength":4000}}},"note":{"type":"string","maxLength":4000},"winnerLabel":{"type":"string","maxLength":4000}}}}};function validate145(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/precedence-resolver.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate145.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate145.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "props"))){validate145.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate145.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate145.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate145.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate145.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate145.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate145.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.props !== undefined){let data3 = data.props;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){let missing1;if((((data3.title === undefined) && (missing1 = "title")) || ((data3.items === undefined) && (missing1 = "items"))) || ((data3.fallback === undefined) && (missing1 = "fallback"))){validate145.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs12 = errors;for(const key3 in data3){if(!((((((key3 === "title") || (key3 === "sub")) || (key3 === "items")) || (key3 === "fallback")) || (key3 === "note")) || (key3 === "winnerLabel"))){validate145.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs12 === errors){if(data3.title !== undefined){let data4 = data3.title;const _errs13 = errors;if(errors === _errs13){if(typeof data4 === "string"){if(func2(data4) > 4000){validate145.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate145.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs13 === errors;}else {var valid2 = true;}if(valid2){if(data3.sub !== undefined){let data5 = data3.sub;const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate145.errors = [{instancePath:instancePath+"/props/sub",schemaPath:"#/properties/props/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate145.errors = [{instancePath:instancePath+"/props/sub",schemaPath:"#/properties/props/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs15 === errors;}else {var valid2 = true;}if(valid2){if(data3.items !== undefined){let data6 = data3.items;const _errs17 = errors;if(errors === _errs17){if(Array.isArray(data6)){if(data6.length > 20){validate145.errors = [{instancePath:instancePath+"/props/items",schemaPath:"#/properties/props/properties/items/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data6.length;for(let i0=0; i0 4000){validate145.errors = [{instancePath:instancePath+"/props/items/" + i0+"/label",schemaPath:"#/properties/props/properties/items/items/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate145.errors = [{instancePath:instancePath+"/props/items/" + i0+"/label",schemaPath:"#/properties/props/properties/items/items/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs22 === errors;}else {var valid4 = true;}if(valid4){if(data7.detail !== undefined){let data9 = data7.detail;const _errs24 = errors;if(errors === _errs24){if(typeof data9 === "string"){if(func2(data9) > 4000){validate145.errors = [{instancePath:instancePath+"/props/items/" + i0+"/detail",schemaPath:"#/properties/props/properties/items/items/properties/detail/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate145.errors = [{instancePath:instancePath+"/props/items/" + i0+"/detail",schemaPath:"#/properties/props/properties/items/items/properties/detail/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs24 === errors;}else {var valid4 = true;}if(valid4){if(data7.on !== undefined){const _errs26 = errors;if(typeof data7.on !== "boolean"){validate145.errors = [{instancePath:instancePath+"/props/items/" + i0+"/on",schemaPath:"#/properties/props/properties/items/items/properties/on/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs26 === errors;}else {var valid4 = true;}}}}}}else {validate145.errors = [{instancePath:instancePath+"/props/items/" + i0,schemaPath:"#/properties/props/properties/items/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs19 === errors;if(!valid3){break;}}}}else {validate145.errors = [{instancePath:instancePath+"/props/items",schemaPath:"#/properties/props/properties/items/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}if(valid2){if(data3.fallback !== undefined){let data11 = data3.fallback;const _errs28 = errors;if(errors === _errs28){if(data11 && typeof data11 == "object" && !Array.isArray(data11)){let missing3;if(((data11.label === undefined) && (missing3 = "label")) || ((data11.detail === undefined) && (missing3 = "detail"))){validate145.errors = [{instancePath:instancePath+"/props/fallback",schemaPath:"#/properties/props/properties/fallback/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs30 = errors;for(const key5 in data11){if(!((key5 === "label") || (key5 === "detail"))){validate145.errors = [{instancePath:instancePath+"/props/fallback",schemaPath:"#/properties/props/properties/fallback/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs30 === errors){if(data11.label !== undefined){let data12 = data11.label;const _errs31 = errors;if(errors === _errs31){if(typeof data12 === "string"){if(func2(data12) > 4000){validate145.errors = [{instancePath:instancePath+"/props/fallback/label",schemaPath:"#/properties/props/properties/fallback/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate145.errors = [{instancePath:instancePath+"/props/fallback/label",schemaPath:"#/properties/props/properties/fallback/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs31 === errors;}else {var valid5 = true;}if(valid5){if(data11.detail !== undefined){let data13 = data11.detail;const _errs33 = errors;if(errors === _errs33){if(typeof data13 === "string"){if(func2(data13) > 4000){validate145.errors = [{instancePath:instancePath+"/props/fallback/detail",schemaPath:"#/properties/props/properties/fallback/properties/detail/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate145.errors = [{instancePath:instancePath+"/props/fallback/detail",schemaPath:"#/properties/props/properties/fallback/properties/detail/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs33 === errors;}else {var valid5 = true;}}}}}else {validate145.errors = [{instancePath:instancePath+"/props/fallback",schemaPath:"#/properties/props/properties/fallback/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs28 === errors;}else {var valid2 = true;}if(valid2){if(data3.note !== undefined){let data14 = data3.note;const _errs35 = errors;if(errors === _errs35){if(typeof data14 === "string"){if(func2(data14) > 4000){validate145.errors = [{instancePath:instancePath+"/props/note",schemaPath:"#/properties/props/properties/note/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate145.errors = [{instancePath:instancePath+"/props/note",schemaPath:"#/properties/props/properties/note/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs35 === errors;}else {var valid2 = true;}if(valid2){if(data3.winnerLabel !== undefined){let data15 = data3.winnerLabel;const _errs37 = errors;if(errors === _errs37){if(typeof data15 === "string"){if(func2(data15) > 4000){validate145.errors = [{instancePath:instancePath+"/props/winnerLabel",schemaPath:"#/properties/props/properties/winnerLabel/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate145.errors = [{instancePath:instancePath+"/props/winnerLabel",schemaPath:"#/properties/props/properties/winnerLabel/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs37 === errors;}else {var valid2 = true;}}}}}}}}}else {validate145.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs10 === errors;}else {var valid0 = true;}}}}}}else {validate145.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate145.errors = vErrors;return errors === 0;}validate145.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_project_tree = validate146;const schema216 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/project-tree.schema.json","type":"object","additionalProperties":false,"properties":{"props":{"type":"object","additionalProperties":false,"required":["paths"],"properties":{"paths":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"notes":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"locked":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"caption":{"type":"string","maxLength":4000}}}}};function validate146(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/project-tree.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate146.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){const _errs1 = errors;for(const key0 in data){if(!(key0 === "props")){validate146.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.props !== undefined){let data0 = data.props;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){let missing0;if((data0.paths === undefined) && (missing0 = "paths")){validate146.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs4 = errors;for(const key1 in data0){if(!((((key1 === "paths") || (key1 === "notes")) || (key1 === "locked")) || (key1 === "caption"))){validate146.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs4 === errors){if(data0.paths !== undefined){let data1 = data0.paths;const _errs5 = errors;if(errors === _errs5){if(Array.isArray(data1)){if(data1.length > 20){validate146.errors = [{instancePath:instancePath+"/props/paths",schemaPath:"#/properties/props/properties/paths/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid2 = true;const len0 = data1.length;for(let i0=0; i0 4000){validate146.errors = [{instancePath:instancePath+"/props/paths/" + i0,schemaPath:"#/properties/props/properties/paths/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/props/paths/" + i0,schemaPath:"#/properties/props/properties/paths/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs7 === errors;if(!valid2){break;}}}}else {validate146.errors = [{instancePath:instancePath+"/props/paths",schemaPath:"#/properties/props/properties/paths/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid1 = _errs5 === errors;}else {var valid1 = true;}if(valid1){if(data0.notes !== undefined){let data3 = data0.notes;const _errs9 = errors;if(errors === _errs9){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){if(Object.keys(data3).length > 30){validate146.errors = [{instancePath:instancePath+"/props/notes",schemaPath:"#/properties/props/properties/notes/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key2 in data3){let data4 = data3[key2];const _errs12 = errors;if(errors === _errs12){if(typeof data4 === "string"){if(func2(data4) > 4000){validate146.errors = [{instancePath:instancePath+"/props/notes/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/props/properties/notes/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/props/notes/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/props/properties/notes/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate146.errors = [{instancePath:instancePath+"/props/notes",schemaPath:"#/properties/props/properties/notes/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid1 = _errs9 === errors;}else {var valid1 = true;}if(valid1){if(data0.locked !== undefined){let data5 = data0.locked;const _errs14 = errors;if(errors === _errs14){if(Array.isArray(data5)){if(data5.length > 20){validate146.errors = [{instancePath:instancePath+"/props/locked",schemaPath:"#/properties/props/properties/locked/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid4 = true;const len1 = data5.length;for(let i1=0; i1 4000){validate146.errors = [{instancePath:instancePath+"/props/locked/" + i1,schemaPath:"#/properties/props/properties/locked/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/props/locked/" + i1,schemaPath:"#/properties/props/properties/locked/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs16 === errors;if(!valid4){break;}}}}else {validate146.errors = [{instancePath:instancePath+"/props/locked",schemaPath:"#/properties/props/properties/locked/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid1 = _errs14 === errors;}else {var valid1 = true;}if(valid1){if(data0.caption !== undefined){let data7 = data0.caption;const _errs18 = errors;if(errors === _errs18){if(typeof data7 === "string"){if(func2(data7) > 4000){validate146.errors = [{instancePath:instancePath+"/props/caption",schemaPath:"#/properties/props/properties/caption/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/props/caption",schemaPath:"#/properties/props/properties/caption/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs18 === errors;}else {var valid1 = true;}}}}}}}else {validate146.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}}}}else {validate146.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate146.errors = vErrors;return errors === 0;}validate146.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_range_expander = validate147;const schema217 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/range-expander.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["presets"],"properties":{"presets":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}}};function validate147(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/range-expander.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate147.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate147.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate147.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate147.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate147.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate147.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate147.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.presets === undefined) && (missing1 = "presets")){validate147.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "presets")){validate147.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.presets !== undefined){let data3 = data2.presets;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate147.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate147.errors = [{instancePath:instancePath+"/data/presets/" + i0,schemaPath:"#/properties/data/properties/presets/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate147.errors = [{instancePath:instancePath+"/data/presets/" + i0,schemaPath:"#/properties/data/properties/presets/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate147.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate147.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate147.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate147.errors = vErrors;return errors === 0;}validate147.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_readiness_checklist = validate148;const schema218 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/readiness-checklist.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":60,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","maxProperties":30,"additionalProperties":{"anyOf":[{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["label","tone"],"properties":{"label":{"type":"string","maxLength":4000},"tone":{"type":"string","maxLength":4000}}}},{"type":"object","additionalProperties":false,"properties":{"1":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"2":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"3":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"4":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"5":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"6":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"7":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"8":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"9":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"10":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"11":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"lab_deploy":{"type":"object","additionalProperties":false,"required":["path","label"],"properties":{"path":{"type":"string","maxLength":4000},"label":{"type":"string","maxLength":4000}}},"lab_playbooks":{"type":"object","additionalProperties":false,"required":["path","label"],"properties":{"path":{"type":"string","maxLength":4000},"label":{"type":"string","maxLength":4000}}},"lab_admin":{"type":"object","additionalProperties":false,"required":["path","label"],"properties":{"path":{"type":"string","maxLength":4000},"label":{"type":"string","maxLength":4000}}},"lab_roles":{"type":"object","additionalProperties":false,"required":["path","label"],"properties":{"path":{"type":"string","maxLength":4000},"label":{"type":"string","maxLength":4000}}}}}]}}}};function validate148(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/readiness-checklist.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate148.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate148.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate148.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 60){validate148.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 60},message:"must NOT have more than 60 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate148.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate148.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate148.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){if(Object.keys(data2).length > 30){validate148.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key2 in data2){let data3 = data2[key2];const _errs10 = errors;const _errs11 = errors;let valid3 = false;const _errs12 = errors;if(errors === _errs12){if(Array.isArray(data3)){if(data3.length > 20){const err0 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/anyOf/0/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}else {var valid4 = true;const len0 = data3.length;for(let i0=0; i0 4000){const err3 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/label",schemaPath:"#/properties/data/additionalProperties/anyOf/0/items/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}else {const err4 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/label",schemaPath:"#/properties/data/additionalProperties/anyOf/0/items/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}var valid5 = _errs17 === errors;}else {var valid5 = true;}if(valid5){if(data4.tone !== undefined){let data6 = data4.tone;const _errs19 = errors;if(errors === _errs19){if(typeof data6 === "string"){if(func2(data6) > 4000){const err5 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/tone",schemaPath:"#/properties/data/additionalProperties/anyOf/0/items/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/tone",schemaPath:"#/properties/data/additionalProperties/anyOf/0/items/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}var valid5 = _errs19 === errors;}else {var valid5 = true;}}}}}else {const err7 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/additionalProperties/anyOf/0/items/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}var valid4 = _errs14 === errors;if(!valid4){break;}}}}else {const err8 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/anyOf/0/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}var _valid0 = _errs12 === errors;valid3 = valid3 || _valid0;const _errs21 = errors;if(errors === _errs21){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){const _errs23 = errors;for(const key4 in data3){if(!(func1.call(schema218.properties.data.additionalProperties.anyOf[1].properties, key4))){const err9 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/anyOf/1/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;break;}}if(_errs23 === errors){if(data3["1"] !== undefined){let data7 = data3["1"];const _errs24 = errors;if(errors === _errs24){if(Array.isArray(data7)){if(data7.length > 20){const err10 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/1",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}else {var valid7 = true;const len1 = data7.length;for(let i1=0; i1 4000){const err11 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/1/" + i1,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/1/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}else {const err12 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/1/" + i1,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/1/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}var valid7 = _errs26 === errors;if(!valid7){break;}}}}else {const err13 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/1",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}var valid6 = _errs24 === errors;}else {var valid6 = true;}if(valid6){if(data3["2"] !== undefined){let data9 = data3["2"];const _errs28 = errors;if(errors === _errs28){if(Array.isArray(data9)){if(data9.length > 20){const err14 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/2",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/2/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}else {var valid8 = true;const len2 = data9.length;for(let i2=0; i2 4000){const err15 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/2/" + i2,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/2/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}else {const err16 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/2/" + i2,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/2/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}var valid8 = _errs30 === errors;if(!valid8){break;}}}}else {const err17 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/2",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/2/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}var valid6 = _errs28 === errors;}else {var valid6 = true;}if(valid6){if(data3["3"] !== undefined){let data11 = data3["3"];const _errs32 = errors;if(errors === _errs32){if(Array.isArray(data11)){if(data11.length > 20){const err18 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/3",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/3/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}else {var valid9 = true;const len3 = data11.length;for(let i3=0; i3 4000){const err19 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/3/" + i3,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/3/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}else {const err20 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/3/" + i3,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/3/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}var valid9 = _errs34 === errors;if(!valid9){break;}}}}else {const err21 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/3",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/3/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}var valid6 = _errs32 === errors;}else {var valid6 = true;}if(valid6){if(data3["4"] !== undefined){let data13 = data3["4"];const _errs36 = errors;if(errors === _errs36){if(Array.isArray(data13)){if(data13.length > 20){const err22 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/4",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/4/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}else {var valid10 = true;const len4 = data13.length;for(let i4=0; i4 4000){const err23 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/4/" + i4,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/4/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}else {const err24 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/4/" + i4,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/4/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}var valid10 = _errs38 === errors;if(!valid10){break;}}}}else {const err25 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/4",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/4/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}var valid6 = _errs36 === errors;}else {var valid6 = true;}if(valid6){if(data3["5"] !== undefined){let data15 = data3["5"];const _errs40 = errors;if(errors === _errs40){if(Array.isArray(data15)){if(data15.length > 20){const err26 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/5",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/5/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}else {var valid11 = true;const len5 = data15.length;for(let i5=0; i5 4000){const err27 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/5/" + i5,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/5/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}else {const err28 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/5/" + i5,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/5/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}var valid11 = _errs42 === errors;if(!valid11){break;}}}}else {const err29 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/5",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/5/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}var valid6 = _errs40 === errors;}else {var valid6 = true;}if(valid6){if(data3["6"] !== undefined){let data17 = data3["6"];const _errs44 = errors;if(errors === _errs44){if(Array.isArray(data17)){if(data17.length > 20){const err30 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/6",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/6/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}else {var valid12 = true;const len6 = data17.length;for(let i6=0; i6 4000){const err31 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/6/" + i6,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/6/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}else {const err32 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/6/" + i6,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/6/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}var valid12 = _errs46 === errors;if(!valid12){break;}}}}else {const err33 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/6",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/6/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}var valid6 = _errs44 === errors;}else {var valid6 = true;}if(valid6){if(data3["7"] !== undefined){let data19 = data3["7"];const _errs48 = errors;if(errors === _errs48){if(Array.isArray(data19)){if(data19.length > 20){const err34 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/7",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/7/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}else {var valid13 = true;const len7 = data19.length;for(let i7=0; i7 4000){const err35 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/7/" + i7,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/7/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}else {const err36 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/7/" + i7,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/7/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}var valid13 = _errs50 === errors;if(!valid13){break;}}}}else {const err37 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/7",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/7/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}var valid6 = _errs48 === errors;}else {var valid6 = true;}if(valid6){if(data3["8"] !== undefined){let data21 = data3["8"];const _errs52 = errors;if(errors === _errs52){if(Array.isArray(data21)){if(data21.length > 20){const err38 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/8",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/8/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}else {var valid14 = true;const len8 = data21.length;for(let i8=0; i8 4000){const err39 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/8/" + i8,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/8/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}else {const err40 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/8/" + i8,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/8/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}var valid14 = _errs54 === errors;if(!valid14){break;}}}}else {const err41 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/8",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/8/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}var valid6 = _errs52 === errors;}else {var valid6 = true;}if(valid6){if(data3["9"] !== undefined){let data23 = data3["9"];const _errs56 = errors;if(errors === _errs56){if(Array.isArray(data23)){if(data23.length > 20){const err42 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/9",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/9/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}else {var valid15 = true;const len9 = data23.length;for(let i9=0; i9 4000){const err43 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/9/" + i9,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/9/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}}else {const err44 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/9/" + i9,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/9/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}}var valid15 = _errs58 === errors;if(!valid15){break;}}}}else {const err45 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/9",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/9/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}}var valid6 = _errs56 === errors;}else {var valid6 = true;}if(valid6){if(data3["10"] !== undefined){let data25 = data3["10"];const _errs60 = errors;if(errors === _errs60){if(Array.isArray(data25)){if(data25.length > 20){const err46 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/10",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/10/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}else {var valid16 = true;const len10 = data25.length;for(let i10=0; i10 4000){const err47 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/10/" + i10,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/10/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}}else {const err48 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/10/" + i10,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/10/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}}var valid16 = _errs62 === errors;if(!valid16){break;}}}}else {const err49 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/10",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/10/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err49];}else {vErrors.push(err49);}errors++;}}var valid6 = _errs60 === errors;}else {var valid6 = true;}if(valid6){if(data3["11"] !== undefined){let data27 = data3["11"];const _errs64 = errors;if(errors === _errs64){if(Array.isArray(data27)){if(data27.length > 20){const err50 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/11",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/11/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err50];}else {vErrors.push(err50);}errors++;}else {var valid17 = true;const len11 = data27.length;for(let i11=0; i11 4000){const err51 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/11/" + i11,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/11/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err51];}else {vErrors.push(err51);}errors++;}}else {const err52 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/11/" + i11,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/11/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err52];}else {vErrors.push(err52);}errors++;}}var valid17 = _errs66 === errors;if(!valid17){break;}}}}else {const err53 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/11",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/11/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err53];}else {vErrors.push(err53);}errors++;}}var valid6 = _errs64 === errors;}else {var valid6 = true;}if(valid6){if(data3.lab_deploy !== undefined){let data29 = data3.lab_deploy;const _errs68 = errors;if(errors === _errs68){if(data29 && typeof data29 == "object" && !Array.isArray(data29)){let missing2;if(((data29.path === undefined) && (missing2 = "path")) || ((data29.label === undefined) && (missing2 = "label"))){const err54 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_deploy",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_deploy/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"};if(vErrors === null){vErrors = [err54];}else {vErrors.push(err54);}errors++;}else {const _errs70 = errors;for(const key5 in data29){if(!((key5 === "path") || (key5 === "label"))){const err55 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_deploy",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_deploy/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err55];}else {vErrors.push(err55);}errors++;break;}}if(_errs70 === errors){if(data29.path !== undefined){let data30 = data29.path;const _errs71 = errors;if(errors === _errs71){if(typeof data30 === "string"){if(func2(data30) > 4000){const err56 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_deploy/path",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_deploy/properties/path/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err56];}else {vErrors.push(err56);}errors++;}}else {const err57 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_deploy/path",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_deploy/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err57];}else {vErrors.push(err57);}errors++;}}var valid18 = _errs71 === errors;}else {var valid18 = true;}if(valid18){if(data29.label !== undefined){let data31 = data29.label;const _errs73 = errors;if(errors === _errs73){if(typeof data31 === "string"){if(func2(data31) > 4000){const err58 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_deploy/label",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_deploy/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err58];}else {vErrors.push(err58);}errors++;}}else {const err59 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_deploy/label",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_deploy/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err59];}else {vErrors.push(err59);}errors++;}}var valid18 = _errs73 === errors;}else {var valid18 = true;}}}}}else {const err60 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_deploy",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_deploy/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err60];}else {vErrors.push(err60);}errors++;}}var valid6 = _errs68 === errors;}else {var valid6 = true;}if(valid6){if(data3.lab_playbooks !== undefined){let data32 = data3.lab_playbooks;const _errs75 = errors;if(errors === _errs75){if(data32 && typeof data32 == "object" && !Array.isArray(data32)){let missing3;if(((data32.path === undefined) && (missing3 = "path")) || ((data32.label === undefined) && (missing3 = "label"))){const err61 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_playbooks",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_playbooks/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"};if(vErrors === null){vErrors = [err61];}else {vErrors.push(err61);}errors++;}else {const _errs77 = errors;for(const key6 in data32){if(!((key6 === "path") || (key6 === "label"))){const err62 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_playbooks",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_playbooks/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err62];}else {vErrors.push(err62);}errors++;break;}}if(_errs77 === errors){if(data32.path !== undefined){let data33 = data32.path;const _errs78 = errors;if(errors === _errs78){if(typeof data33 === "string"){if(func2(data33) > 4000){const err63 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_playbooks/path",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_playbooks/properties/path/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err63];}else {vErrors.push(err63);}errors++;}}else {const err64 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_playbooks/path",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_playbooks/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err64];}else {vErrors.push(err64);}errors++;}}var valid19 = _errs78 === errors;}else {var valid19 = true;}if(valid19){if(data32.label !== undefined){let data34 = data32.label;const _errs80 = errors;if(errors === _errs80){if(typeof data34 === "string"){if(func2(data34) > 4000){const err65 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_playbooks/label",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_playbooks/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err65];}else {vErrors.push(err65);}errors++;}}else {const err66 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_playbooks/label",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_playbooks/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err66];}else {vErrors.push(err66);}errors++;}}var valid19 = _errs80 === errors;}else {var valid19 = true;}}}}}else {const err67 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_playbooks",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_playbooks/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err67];}else {vErrors.push(err67);}errors++;}}var valid6 = _errs75 === errors;}else {var valid6 = true;}if(valid6){if(data3.lab_admin !== undefined){let data35 = data3.lab_admin;const _errs82 = errors;if(errors === _errs82){if(data35 && typeof data35 == "object" && !Array.isArray(data35)){let missing4;if(((data35.path === undefined) && (missing4 = "path")) || ((data35.label === undefined) && (missing4 = "label"))){const err68 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_admin",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_admin/required",keyword:"required",params:{missingProperty: missing4},message:"must have required property '"+missing4+"'"};if(vErrors === null){vErrors = [err68];}else {vErrors.push(err68);}errors++;}else {const _errs84 = errors;for(const key7 in data35){if(!((key7 === "path") || (key7 === "label"))){const err69 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_admin",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_admin/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key7},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err69];}else {vErrors.push(err69);}errors++;break;}}if(_errs84 === errors){if(data35.path !== undefined){let data36 = data35.path;const _errs85 = errors;if(errors === _errs85){if(typeof data36 === "string"){if(func2(data36) > 4000){const err70 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_admin/path",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_admin/properties/path/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err70];}else {vErrors.push(err70);}errors++;}}else {const err71 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_admin/path",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_admin/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err71];}else {vErrors.push(err71);}errors++;}}var valid20 = _errs85 === errors;}else {var valid20 = true;}if(valid20){if(data35.label !== undefined){let data37 = data35.label;const _errs87 = errors;if(errors === _errs87){if(typeof data37 === "string"){if(func2(data37) > 4000){const err72 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_admin/label",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_admin/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err72];}else {vErrors.push(err72);}errors++;}}else {const err73 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_admin/label",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_admin/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err73];}else {vErrors.push(err73);}errors++;}}var valid20 = _errs87 === errors;}else {var valid20 = true;}}}}}else {const err74 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_admin",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_admin/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err74];}else {vErrors.push(err74);}errors++;}}var valid6 = _errs82 === errors;}else {var valid6 = true;}if(valid6){if(data3.lab_roles !== undefined){let data38 = data3.lab_roles;const _errs89 = errors;if(errors === _errs89){if(data38 && typeof data38 == "object" && !Array.isArray(data38)){let missing5;if(((data38.path === undefined) && (missing5 = "path")) || ((data38.label === undefined) && (missing5 = "label"))){const err75 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_roles",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_roles/required",keyword:"required",params:{missingProperty: missing5},message:"must have required property '"+missing5+"'"};if(vErrors === null){vErrors = [err75];}else {vErrors.push(err75);}errors++;}else {const _errs91 = errors;for(const key8 in data38){if(!((key8 === "path") || (key8 === "label"))){const err76 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_roles",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_roles/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key8},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err76];}else {vErrors.push(err76);}errors++;break;}}if(_errs91 === errors){if(data38.path !== undefined){let data39 = data38.path;const _errs92 = errors;if(errors === _errs92){if(typeof data39 === "string"){if(func2(data39) > 4000){const err77 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_roles/path",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_roles/properties/path/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err77];}else {vErrors.push(err77);}errors++;}}else {const err78 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_roles/path",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_roles/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err78];}else {vErrors.push(err78);}errors++;}}var valid21 = _errs92 === errors;}else {var valid21 = true;}if(valid21){if(data38.label !== undefined){let data40 = data38.label;const _errs94 = errors;if(errors === _errs94){if(typeof data40 === "string"){if(func2(data40) > 4000){const err79 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_roles/label",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_roles/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err79];}else {vErrors.push(err79);}errors++;}}else {const err80 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_roles/label",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_roles/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err80];}else {vErrors.push(err80);}errors++;}}var valid21 = _errs94 === errors;}else {var valid21 = true;}}}}}else {const err81 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_roles",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_roles/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err81];}else {vErrors.push(err81);}errors++;}}var valid6 = _errs89 === errors;}else {var valid6 = true;}}}}}}}}}}}}}}}}}else {const err82 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/anyOf/1/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err82];}else {vErrors.push(err82);}errors++;}}var _valid0 = _errs21 === errors;valid3 = valid3 || _valid0;if(!valid3){const err83 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err83];}else {vErrors.push(err83);}errors++;validate148.errors = vErrors;return false;}else {errors = _errs11;if(vErrors !== null){if(_errs11){vErrors.length = _errs11;}else {vErrors = null;}}}var valid2 = _errs10 === errors;if(!valid2){break;}}}}else {validate148.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate148.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate148.errors = vErrors;return errors === 0;}validate148.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_reuse_simulator = validate149;const schema219 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/reuse-simulator.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":96,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["tasks","initialSelection1","initialSelection2"],"properties":{"tasks":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"initialSelection1":{"type":"string","maxLength":4000},"initialSelection2":{"type":"string","maxLength":4000}}}}};function validate149(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/reuse-simulator.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate149.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate149.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate149.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 96){validate149.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 96},message:"must NOT have more than 96 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate149.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate149.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate149.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((((data2.tasks === undefined) && (missing1 = "tasks")) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))) || ((data2.initialSelection2 === undefined) && (missing1 = "initialSelection2"))){validate149.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(((key2 === "tasks") || (key2 === "initialSelection1")) || (key2 === "initialSelection2"))){validate149.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.tasks !== undefined){let data3 = data2.tasks;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate149.errors = [{instancePath:instancePath+"/data/tasks",schemaPath:"#/properties/data/properties/tasks/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate149.errors = [{instancePath:instancePath+"/data/tasks/" + i0,schemaPath:"#/properties/data/properties/tasks/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate149.errors = [{instancePath:instancePath+"/data/tasks/" + i0,schemaPath:"#/properties/data/properties/tasks/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate149.errors = [{instancePath:instancePath+"/data/tasks",schemaPath:"#/properties/data/properties/tasks/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data5 = data2.initialSelection1;const _errs14 = errors;if(errors === _errs14){if(typeof data5 === "string"){if(func2(data5) > 4000){validate149.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate149.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs14 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection2 !== undefined){let data6 = data2.initialSelection2;const _errs16 = errors;if(errors === _errs16){if(typeof data6 === "string"){if(func2(data6) > 4000){validate149.errors = [{instancePath:instancePath+"/data/initialSelection2",schemaPath:"#/properties/data/properties/initialSelection2/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate149.errors = [{instancePath:instancePath+"/data/initialSelection2",schemaPath:"#/properties/data/properties/initialSelection2/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs16 === errors;}else {var valid2 = true;}}}}}}else {validate149.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate149.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate149.errors = vErrors;return errors === 0;}validate149.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_role_anatomy = validate150;const schema220 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/role-anatomy.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","additionalProperties":false,"required":["widgetLabel"],"properties":{"widgetLabel":{"type":"string","maxLength":4000}}},"data":{"type":"object","additionalProperties":false,"required":["files","initialSelection1"],"properties":{"files":{"type":"object","maxProperties":30,"additionalProperties":{"type":"object","additionalProperties":false,"required":["what","code"],"properties":{"what":{"type":"string","maxLength":4000},"code":{"type":"string","maxLength":4000}}}},"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate150(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/role-anatomy.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate150.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate150.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate150.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){let missing1;if((data0.widgetLabel === undefined) && (missing1 = "widgetLabel")){validate150.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs4 = errors;for(const key1 in data0){if(!(key1 === "widgetLabel")){validate150.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs4 === errors){if(data0.widgetLabel !== undefined){let data1 = data0.widgetLabel;const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate150.errors = [{instancePath:instancePath+"/text/widgetLabel",schemaPath:"#/properties/text/properties/widgetLabel/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate150.errors = [{instancePath:instancePath+"/text/widgetLabel",schemaPath:"#/properties/text/properties/widgetLabel/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}}}else {validate150.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing2;if(((data2.files === undefined) && (missing2 = "files")) || ((data2.initialSelection1 === undefined) && (missing2 = "initialSelection1"))){validate150.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "files") || (key2 === "initialSelection1"))){validate150.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.files !== undefined){let data3 = data2.files;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){if(Object.keys(data3).length > 30){validate150.errors = [{instancePath:instancePath+"/data/files",schemaPath:"#/properties/data/properties/files/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data3){let data4 = data3[key3];const _errs13 = errors;if(errors === _errs13){if(data4 && typeof data4 == "object" && !Array.isArray(data4)){let missing3;if(((data4.what === undefined) && (missing3 = "what")) || ((data4.code === undefined) && (missing3 = "code"))){validate150.errors = [{instancePath:instancePath+"/data/files/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/files/additionalProperties/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs15 = errors;for(const key4 in data4){if(!((key4 === "what") || (key4 === "code"))){validate150.errors = [{instancePath:instancePath+"/data/files/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/files/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs15 === errors){if(data4.what !== undefined){let data5 = data4.what;const _errs16 = errors;if(errors === _errs16){if(typeof data5 === "string"){if(func2(data5) > 4000){validate150.errors = [{instancePath:instancePath+"/data/files/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/what",schemaPath:"#/properties/data/properties/files/additionalProperties/properties/what/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate150.errors = [{instancePath:instancePath+"/data/files/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/what",schemaPath:"#/properties/data/properties/files/additionalProperties/properties/what/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs16 === errors;}else {var valid4 = true;}if(valid4){if(data4.code !== undefined){let data6 = data4.code;const _errs18 = errors;if(errors === _errs18){if(typeof data6 === "string"){if(func2(data6) > 4000){validate150.errors = [{instancePath:instancePath+"/data/files/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/code",schemaPath:"#/properties/data/properties/files/additionalProperties/properties/code/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate150.errors = [{instancePath:instancePath+"/data/files/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/code",schemaPath:"#/properties/data/properties/files/additionalProperties/properties/code/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs18 === errors;}else {var valid4 = true;}}}}}else {validate150.errors = [{instancePath:instancePath+"/data/files/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/files/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs13 === errors;if(!valid3){break;}}}}else {validate150.errors = [{instancePath:instancePath+"/data/files",schemaPath:"#/properties/data/properties/files/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data7 = data2.initialSelection1;const _errs20 = errors;if(errors === _errs20){if(typeof data7 === "string"){if(func2(data7) > 4000){validate150.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate150.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs20 === errors;}else {var valid2 = true;}}}}}else {validate150.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate150.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate150.errors = vErrors;return errors === 0;}validate150.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_role_var_resolver = validate151;const schema221 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/role-var-resolver.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["sources"],"properties":{"sources":{"type":"array","maxItems":20,"items":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}}}}}}};function validate151(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/role-var-resolver.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate151.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate151.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate151.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate151.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate151.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate151.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.sources === undefined) && (missing1 = "sources")){validate151.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "sources")){validate151.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.sources !== undefined){let data3 = data2.sources;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate151.errors = [{instancePath:instancePath+"/data/sources",schemaPath:"#/properties/data/properties/sources/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 30){validate151.errors = [{instancePath:instancePath+"/data/sources/" + i0,schemaPath:"#/properties/data/properties/sources/items/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data4){let data5 = data4[key3];const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate151.errors = [{instancePath:instancePath+"/data/sources/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/sources/items/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/sources/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/sources/items/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;if(!valid4){break;}}}}else {validate151.errors = [{instancePath:instancePath+"/data/sources/" + i0,schemaPath:"#/properties/data/properties/sources/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate151.errors = [{instancePath:instancePath+"/data/sources",schemaPath:"#/properties/data/properties/sources/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate151.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate151.errors = vErrors;return errors === 0;}validate151.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_run_stages = validate152;const schema222 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/run-stages.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["stages","initialSelection1"],"properties":{"stages":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["id","title","sub","tone","signs","tools"],"properties":{"id":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000},"tone":{"type":"string","maxLength":4000},"signs":{"type":"string","maxLength":4000},"tools":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}},"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate152(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/run-stages.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate152.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate152.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate152.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate152.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate152.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate152.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate152.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.stages === undefined) && (missing1 = "stages")) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate152.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "stages") || (key2 === "initialSelection1"))){validate152.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.stages !== undefined){let data3 = data2.stages;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate152.errors = [{instancePath:instancePath+"/data/stages",schemaPath:"#/properties/data/properties/stages/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate152.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/id",schemaPath:"#/properties/data/properties/stages/items/properties/id/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate152.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/id",schemaPath:"#/properties/data/properties/stages/items/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.title !== undefined){let data6 = data4.title;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate152.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/title",schemaPath:"#/properties/data/properties/stages/items/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate152.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/title",schemaPath:"#/properties/data/properties/stages/items/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.sub !== undefined){let data7 = data4.sub;const _errs19 = errors;if(errors === _errs19){if(typeof data7 === "string"){if(func2(data7) > 4000){validate152.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/sub",schemaPath:"#/properties/data/properties/stages/items/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate152.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/sub",schemaPath:"#/properties/data/properties/stages/items/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data4.tone !== undefined){let data8 = data4.tone;const _errs21 = errors;if(errors === _errs21){if(typeof data8 === "string"){if(func2(data8) > 4000){validate152.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/tone",schemaPath:"#/properties/data/properties/stages/items/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate152.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/tone",schemaPath:"#/properties/data/properties/stages/items/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs21 === errors;}else {var valid4 = true;}if(valid4){if(data4.signs !== undefined){let data9 = data4.signs;const _errs23 = errors;if(errors === _errs23){if(typeof data9 === "string"){if(func2(data9) > 4000){validate152.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/signs",schemaPath:"#/properties/data/properties/stages/items/properties/signs/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate152.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/signs",schemaPath:"#/properties/data/properties/stages/items/properties/signs/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs23 === errors;}else {var valid4 = true;}if(valid4){if(data4.tools !== undefined){let data10 = data4.tools;const _errs25 = errors;if(errors === _errs25){if(Array.isArray(data10)){if(data10.length > 20){validate152.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/tools",schemaPath:"#/properties/data/properties/stages/items/properties/tools/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data10.length;for(let i1=0; i1 4000){validate152.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/tools/" + i1,schemaPath:"#/properties/data/properties/stages/items/properties/tools/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate152.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/tools/" + i1,schemaPath:"#/properties/data/properties/stages/items/properties/tools/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs27 === errors;if(!valid5){break;}}}}else {validate152.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/tools",schemaPath:"#/properties/data/properties/stages/items/properties/tools/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs25 === errors;}else {var valid4 = true;}}}}}}}}}else {validate152.errors = [{instancePath:instancePath+"/data/stages/" + i0,schemaPath:"#/properties/data/properties/stages/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate152.errors = [{instancePath:instancePath+"/data/stages",schemaPath:"#/properties/data/properties/stages/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data12 = data2.initialSelection1;const _errs29 = errors;if(errors === _errs29){if(typeof data12 === "string"){if(func2(data12) > 4000){validate152.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate152.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs29 === errors;}else {var valid2 = true;}}}}}else {validate152.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate152.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate152.errors = vErrors;return errors === 0;}validate152.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_shell_practice = validate153;const schema223 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/shell-practice.schema.json","type":"object","additionalProperties":false,"required":["text","data","props"],"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false},"props":{"type":"object","additionalProperties":false,"required":["commands"],"properties":{"title":{"type":"string","maxLength":200},"prompt":{"type":"string","maxLength":80},"commands":{"type":"array","minItems":1,"maxItems":80,"items":{"type":"object","additionalProperties":false,"required":["cmd"],"properties":{"cmd":{"type":"string","minLength":1,"maxLength":300},"out":{"type":"string","maxLength":6000}}}},"tasks":{"type":"array","maxItems":12,"items":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":300},"commands":{"type":"array","maxItems":10,"items":{"type":"string","minLength":1,"maxLength":300}},"typed":{"type":"array","maxItems":10,"items":{"type":"string","minLength":1,"maxLength":60}},"via":{"enum":["search","last-argument"]}},"anyOf":[{"required":["commands"]},{"required":["typed"]},{"required":["via"]}]}},"words":{"type":"array","maxItems":100,"items":{"type":"string","minLength":1,"maxLength":120}}}}}};function validate153(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/shell-practice.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate153.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))) || ((data.props === undefined) && (missing0 = "props"))){validate153.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "props"))){validate153.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate153.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate153.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}else {validate153.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate153.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate153.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.props !== undefined){let data3 = data.props;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){let missing1;if((data3.commands === undefined) && (missing1 = "commands")){validate153.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs12 = errors;for(const key3 in data3){if(!(((((key3 === "title") || (key3 === "prompt")) || (key3 === "commands")) || (key3 === "tasks")) || (key3 === "words"))){validate153.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs12 === errors){if(data3.title !== undefined){let data4 = data3.title;const _errs13 = errors;if(errors === _errs13){if(typeof data4 === "string"){if(func2(data4) > 200){validate153.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}}else {validate153.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs13 === errors;}else {var valid2 = true;}if(valid2){if(data3.prompt !== undefined){let data5 = data3.prompt;const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 80){validate153.errors = [{instancePath:instancePath+"/props/prompt",schemaPath:"#/properties/props/properties/prompt/maxLength",keyword:"maxLength",params:{limit: 80},message:"must NOT have more than 80 characters"}];return false;}}else {validate153.errors = [{instancePath:instancePath+"/props/prompt",schemaPath:"#/properties/props/properties/prompt/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs15 === errors;}else {var valid2 = true;}if(valid2){if(data3.commands !== undefined){let data6 = data3.commands;const _errs17 = errors;if(errors === _errs17){if(Array.isArray(data6)){if(data6.length > 80){validate153.errors = [{instancePath:instancePath+"/props/commands",schemaPath:"#/properties/props/properties/commands/maxItems",keyword:"maxItems",params:{limit: 80},message:"must NOT have more than 80 items"}];return false;}else {if(data6.length < 1){validate153.errors = [{instancePath:instancePath+"/props/commands",schemaPath:"#/properties/props/properties/commands/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid3 = true;const len0 = data6.length;for(let i0=0; i0 300){validate153.errors = [{instancePath:instancePath+"/props/commands/" + i0+"/cmd",schemaPath:"#/properties/props/properties/commands/items/properties/cmd/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}else {if(func2(data8) < 1){validate153.errors = [{instancePath:instancePath+"/props/commands/" + i0+"/cmd",schemaPath:"#/properties/props/properties/commands/items/properties/cmd/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate153.errors = [{instancePath:instancePath+"/props/commands/" + i0+"/cmd",schemaPath:"#/properties/props/properties/commands/items/properties/cmd/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs22 === errors;}else {var valid4 = true;}if(valid4){if(data7.out !== undefined){let data9 = data7.out;const _errs24 = errors;if(errors === _errs24){if(typeof data9 === "string"){if(func2(data9) > 6000){validate153.errors = [{instancePath:instancePath+"/props/commands/" + i0+"/out",schemaPath:"#/properties/props/properties/commands/items/properties/out/maxLength",keyword:"maxLength",params:{limit: 6000},message:"must NOT have more than 6000 characters"}];return false;}}else {validate153.errors = [{instancePath:instancePath+"/props/commands/" + i0+"/out",schemaPath:"#/properties/props/properties/commands/items/properties/out/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs24 === errors;}else {var valid4 = true;}}}}}else {validate153.errors = [{instancePath:instancePath+"/props/commands/" + i0,schemaPath:"#/properties/props/properties/commands/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs19 === errors;if(!valid3){break;}}}}}else {validate153.errors = [{instancePath:instancePath+"/props/commands",schemaPath:"#/properties/props/properties/commands/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}if(valid2){if(data3.tasks !== undefined){let data10 = data3.tasks;const _errs26 = errors;if(errors === _errs26){if(Array.isArray(data10)){if(data10.length > 12){validate153.errors = [{instancePath:instancePath+"/props/tasks",schemaPath:"#/properties/props/properties/tasks/maxItems",keyword:"maxItems",params:{limit: 12},message:"must NOT have more than 12 items"}];return false;}else {var valid5 = true;const len1 = data10.length;for(let i1=0; i1 300){validate153.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/text",schemaPath:"#/properties/props/properties/tasks/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}else {if(func2(data12) < 1){validate153.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/text",schemaPath:"#/properties/props/properties/tasks/items/properties/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate153.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/text",schemaPath:"#/properties/props/properties/tasks/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs35 === errors;}else {var valid7 = true;}if(valid7){if(data11.commands !== undefined){let data13 = data11.commands;const _errs37 = errors;if(errors === _errs37){if(Array.isArray(data13)){if(data13.length > 10){validate153.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/commands",schemaPath:"#/properties/props/properties/tasks/items/properties/commands/maxItems",keyword:"maxItems",params:{limit: 10},message:"must NOT have more than 10 items"}];return false;}else {var valid8 = true;const len2 = data13.length;for(let i2=0; i2 300){validate153.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/commands/" + i2,schemaPath:"#/properties/props/properties/tasks/items/properties/commands/items/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}else {if(func2(data14) < 1){validate153.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/commands/" + i2,schemaPath:"#/properties/props/properties/tasks/items/properties/commands/items/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate153.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/commands/" + i2,schemaPath:"#/properties/props/properties/tasks/items/properties/commands/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid8 = _errs39 === errors;if(!valid8){break;}}}}else {validate153.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/commands",schemaPath:"#/properties/props/properties/tasks/items/properties/commands/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid7 = _errs37 === errors;}else {var valid7 = true;}if(valid7){if(data11.typed !== undefined){let data15 = data11.typed;const _errs41 = errors;if(errors === _errs41){if(Array.isArray(data15)){if(data15.length > 10){validate153.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/typed",schemaPath:"#/properties/props/properties/tasks/items/properties/typed/maxItems",keyword:"maxItems",params:{limit: 10},message:"must NOT have more than 10 items"}];return false;}else {var valid9 = true;const len3 = data15.length;for(let i3=0; i3 60){validate153.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/typed/" + i3,schemaPath:"#/properties/props/properties/tasks/items/properties/typed/items/maxLength",keyword:"maxLength",params:{limit: 60},message:"must NOT have more than 60 characters"}];return false;}else {if(func2(data16) < 1){validate153.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/typed/" + i3,schemaPath:"#/properties/props/properties/tasks/items/properties/typed/items/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate153.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/typed/" + i3,schemaPath:"#/properties/props/properties/tasks/items/properties/typed/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid9 = _errs43 === errors;if(!valid9){break;}}}}else {validate153.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/typed",schemaPath:"#/properties/props/properties/tasks/items/properties/typed/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid7 = _errs41 === errors;}else {var valid7 = true;}if(valid7){if(data11.via !== undefined){let data17 = data11.via;const _errs45 = errors;if(!((data17 === "search") || (data17 === "last-argument"))){validate153.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/via",schemaPath:"#/properties/props/properties/tasks/items/properties/via/enum",keyword:"enum",params:{allowedValues: schema223.properties.props.properties.tasks.items.properties.via.enum},message:"must be equal to one of the allowed values"}];return false;}var valid7 = _errs45 === errors;}else {var valid7 = true;}}}}}}}else {validate153.errors = [{instancePath:instancePath+"/props/tasks/" + i1,schemaPath:"#/properties/props/properties/tasks/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs28 === errors;if(!valid5){break;}}}}else {validate153.errors = [{instancePath:instancePath+"/props/tasks",schemaPath:"#/properties/props/properties/tasks/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs26 === errors;}else {var valid2 = true;}if(valid2){if(data3.words !== undefined){let data18 = data3.words;const _errs46 = errors;if(errors === _errs46){if(Array.isArray(data18)){if(data18.length > 100){validate153.errors = [{instancePath:instancePath+"/props/words",schemaPath:"#/properties/props/properties/words/maxItems",keyword:"maxItems",params:{limit: 100},message:"must NOT have more than 100 items"}];return false;}else {var valid10 = true;const len4 = data18.length;for(let i4=0; i4 120){validate153.errors = [{instancePath:instancePath+"/props/words/" + i4,schemaPath:"#/properties/props/properties/words/items/maxLength",keyword:"maxLength",params:{limit: 120},message:"must NOT have more than 120 characters"}];return false;}else {if(func2(data19) < 1){validate153.errors = [{instancePath:instancePath+"/props/words/" + i4,schemaPath:"#/properties/props/properties/words/items/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate153.errors = [{instancePath:instancePath+"/props/words/" + i4,schemaPath:"#/properties/props/properties/words/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid10 = _errs48 === errors;if(!valid10){break;}}}}else {validate153.errors = [{instancePath:instancePath+"/props/words",schemaPath:"#/properties/props/properties/words/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs46 === errors;}else {var valid2 = true;}}}}}}}}else {validate153.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs10 === errors;}else {var valid0 = true;}}}}}}else {validate153.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate153.errors = vErrors;return errors === 0;}validate153.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_snapshot_chain = validate154;const schema224 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/snapshot-chain.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":39,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["names"],"properties":{"names":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}}};function validate154(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/snapshot-chain.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate154.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate154.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate154.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 39){validate154.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 39},message:"must NOT have more than 39 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate154.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate154.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate154.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.names === undefined) && (missing1 = "names")){validate154.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "names")){validate154.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.names !== undefined){let data3 = data2.names;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate154.errors = [{instancePath:instancePath+"/data/names",schemaPath:"#/properties/data/properties/names/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate154.errors = [{instancePath:instancePath+"/data/names/" + i0,schemaPath:"#/properties/data/properties/names/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate154.errors = [{instancePath:instancePath+"/data/names/" + i0,schemaPath:"#/properties/data/properties/names/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate154.errors = [{instancePath:instancePath+"/data/names",schemaPath:"#/properties/data/properties/names/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate154.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate154.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate154.errors = vErrors;return errors === 0;}validate154.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_stat_explorer = validate155;const schema225 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/stat-explorer.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","additionalProperties":false,"required":["template"],"properties":{"template":{"type":"string","maxLength":4000}}},"data":{"type":"object","additionalProperties":false,"required":["statSample"],"properties":{"statSample":{"type":"object","additionalProperties":false,"required":["changed","failed","stat"],"properties":{"changed":{"type":"boolean"},"failed":{"type":"boolean"},"stat":{"type":"object","additionalProperties":false,"required":["exists","path","isreg","isdir","islnk","mode","uid","gid","pw_name","gr_name","size","mtime","checksum","mimetype","readable","writeable","executable"],"properties":{"exists":{"type":"boolean"},"path":{"type":"string","maxLength":4000},"isreg":{"type":"boolean"},"isdir":{"type":"boolean"},"islnk":{"type":"boolean"},"mode":{"type":"string","maxLength":4000},"uid":{"type":"integer"},"gid":{"type":"integer"},"pw_name":{"type":"string","maxLength":4000},"gr_name":{"type":"string","maxLength":4000},"size":{"type":"integer"},"mtime":{"type":"number"},"checksum":{"type":"string","maxLength":4000},"mimetype":{"type":"string","maxLength":4000},"readable":{"type":"boolean"},"writeable":{"type":"boolean"},"executable":{"type":"boolean"}}}}}}},"props":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","maxLength":4000}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate155(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/stat-explorer.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate155.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate155.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((((key0 === "text") || (key0 === "data")) || (key0 === "props")) || (key0 === "dependencies"))){validate155.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){let missing1;if((data0.template === undefined) && (missing1 = "template")){validate155.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs4 = errors;for(const key1 in data0){if(!(key1 === "template")){validate155.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs4 === errors){if(data0.template !== undefined){let data1 = data0.template;const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate155.errors = [{instancePath:instancePath+"/text/template",schemaPath:"#/properties/text/properties/template/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate155.errors = [{instancePath:instancePath+"/text/template",schemaPath:"#/properties/text/properties/template/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}}}else {validate155.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing2;if((data2.statSample === undefined) && (missing2 = "statSample")){validate155.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "statSample")){validate155.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.statSample !== undefined){let data3 = data2.statSample;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){let missing3;if((((data3.changed === undefined) && (missing3 = "changed")) || ((data3.failed === undefined) && (missing3 = "failed"))) || ((data3.stat === undefined) && (missing3 = "stat"))){validate155.errors = [{instancePath:instancePath+"/data/statSample",schemaPath:"#/properties/data/properties/statSample/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs12 = errors;for(const key3 in data3){if(!(((key3 === "changed") || (key3 === "failed")) || (key3 === "stat"))){validate155.errors = [{instancePath:instancePath+"/data/statSample",schemaPath:"#/properties/data/properties/statSample/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs12 === errors){if(data3.changed !== undefined){const _errs13 = errors;if(typeof data3.changed !== "boolean"){validate155.errors = [{instancePath:instancePath+"/data/statSample/changed",schemaPath:"#/properties/data/properties/statSample/properties/changed/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid3 = _errs13 === errors;}else {var valid3 = true;}if(valid3){if(data3.failed !== undefined){const _errs15 = errors;if(typeof data3.failed !== "boolean"){validate155.errors = [{instancePath:instancePath+"/data/statSample/failed",schemaPath:"#/properties/data/properties/statSample/properties/failed/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid3 = _errs15 === errors;}else {var valid3 = true;}if(valid3){if(data3.stat !== undefined){let data6 = data3.stat;const _errs17 = errors;if(errors === _errs17){if(data6 && typeof data6 == "object" && !Array.isArray(data6)){let missing4;if((((((((((((((((((data6.exists === undefined) && (missing4 = "exists")) || ((data6.path === undefined) && (missing4 = "path"))) || ((data6.isreg === undefined) && (missing4 = "isreg"))) || ((data6.isdir === undefined) && (missing4 = "isdir"))) || ((data6.islnk === undefined) && (missing4 = "islnk"))) || ((data6.mode === undefined) && (missing4 = "mode"))) || ((data6.uid === undefined) && (missing4 = "uid"))) || ((data6.gid === undefined) && (missing4 = "gid"))) || ((data6.pw_name === undefined) && (missing4 = "pw_name"))) || ((data6.gr_name === undefined) && (missing4 = "gr_name"))) || ((data6.size === undefined) && (missing4 = "size"))) || ((data6.mtime === undefined) && (missing4 = "mtime"))) || ((data6.checksum === undefined) && (missing4 = "checksum"))) || ((data6.mimetype === undefined) && (missing4 = "mimetype"))) || ((data6.readable === undefined) && (missing4 = "readable"))) || ((data6.writeable === undefined) && (missing4 = "writeable"))) || ((data6.executable === undefined) && (missing4 = "executable"))){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat",schemaPath:"#/properties/data/properties/statSample/properties/stat/required",keyword:"required",params:{missingProperty: missing4},message:"must have required property '"+missing4+"'"}];return false;}else {const _errs19 = errors;for(const key4 in data6){if(!(func1.call(schema225.properties.data.properties.statSample.properties.stat.properties, key4))){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat",schemaPath:"#/properties/data/properties/statSample/properties/stat/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs19 === errors){if(data6.exists !== undefined){const _errs20 = errors;if(typeof data6.exists !== "boolean"){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/exists",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/exists/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs20 === errors;}else {var valid4 = true;}if(valid4){if(data6.path !== undefined){let data8 = data6.path;const _errs22 = errors;if(errors === _errs22){if(typeof data8 === "string"){if(func2(data8) > 4000){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/path",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/path/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/path",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs22 === errors;}else {var valid4 = true;}if(valid4){if(data6.isreg !== undefined){const _errs24 = errors;if(typeof data6.isreg !== "boolean"){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/isreg",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/isreg/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs24 === errors;}else {var valid4 = true;}if(valid4){if(data6.isdir !== undefined){const _errs26 = errors;if(typeof data6.isdir !== "boolean"){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/isdir",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/isdir/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs26 === errors;}else {var valid4 = true;}if(valid4){if(data6.islnk !== undefined){const _errs28 = errors;if(typeof data6.islnk !== "boolean"){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/islnk",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/islnk/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs28 === errors;}else {var valid4 = true;}if(valid4){if(data6.mode !== undefined){let data12 = data6.mode;const _errs30 = errors;if(errors === _errs30){if(typeof data12 === "string"){if(func2(data12) > 4000){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/mode",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/mode/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/mode",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/mode/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs30 === errors;}else {var valid4 = true;}if(valid4){if(data6.uid !== undefined){let data13 = data6.uid;const _errs32 = errors;if(!(((typeof data13 == "number") && (!(data13 % 1) && !isNaN(data13))) && (isFinite(data13)))){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/uid",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/uid/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs32 === errors;}else {var valid4 = true;}if(valid4){if(data6.gid !== undefined){let data14 = data6.gid;const _errs34 = errors;if(!(((typeof data14 == "number") && (!(data14 % 1) && !isNaN(data14))) && (isFinite(data14)))){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/gid",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/gid/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs34 === errors;}else {var valid4 = true;}if(valid4){if(data6.pw_name !== undefined){let data15 = data6.pw_name;const _errs36 = errors;if(errors === _errs36){if(typeof data15 === "string"){if(func2(data15) > 4000){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/pw_name",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/pw_name/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/pw_name",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/pw_name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs36 === errors;}else {var valid4 = true;}if(valid4){if(data6.gr_name !== undefined){let data16 = data6.gr_name;const _errs38 = errors;if(errors === _errs38){if(typeof data16 === "string"){if(func2(data16) > 4000){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/gr_name",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/gr_name/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/gr_name",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/gr_name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs38 === errors;}else {var valid4 = true;}if(valid4){if(data6.size !== undefined){let data17 = data6.size;const _errs40 = errors;if(!(((typeof data17 == "number") && (!(data17 % 1) && !isNaN(data17))) && (isFinite(data17)))){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/size",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/size/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs40 === errors;}else {var valid4 = true;}if(valid4){if(data6.mtime !== undefined){let data18 = data6.mtime;const _errs42 = errors;if(!((typeof data18 == "number") && (isFinite(data18)))){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/mtime",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/mtime/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}var valid4 = _errs42 === errors;}else {var valid4 = true;}if(valid4){if(data6.checksum !== undefined){let data19 = data6.checksum;const _errs44 = errors;if(errors === _errs44){if(typeof data19 === "string"){if(func2(data19) > 4000){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/checksum",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/checksum/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/checksum",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/checksum/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs44 === errors;}else {var valid4 = true;}if(valid4){if(data6.mimetype !== undefined){let data20 = data6.mimetype;const _errs46 = errors;if(errors === _errs46){if(typeof data20 === "string"){if(func2(data20) > 4000){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/mimetype",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/mimetype/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/mimetype",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/mimetype/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs46 === errors;}else {var valid4 = true;}if(valid4){if(data6.readable !== undefined){const _errs48 = errors;if(typeof data6.readable !== "boolean"){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/readable",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/readable/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs48 === errors;}else {var valid4 = true;}if(valid4){if(data6.writeable !== undefined){const _errs50 = errors;if(typeof data6.writeable !== "boolean"){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/writeable",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/writeable/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs50 === errors;}else {var valid4 = true;}if(valid4){if(data6.executable !== undefined){const _errs52 = errors;if(typeof data6.executable !== "boolean"){validate155.errors = [{instancePath:instancePath+"/data/statSample/stat/executable",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/executable/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs52 === errors;}else {var valid4 = true;}}}}}}}}}}}}}}}}}}}}else {validate155.errors = [{instancePath:instancePath+"/data/statSample/stat",schemaPath:"#/properties/data/properties/statSample/properties/stat/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs17 === errors;}else {var valid3 = true;}}}}}}else {validate155.errors = [{instancePath:instancePath+"/data/statSample",schemaPath:"#/properties/data/properties/statSample/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}}}}}else {validate155.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.props !== undefined){let data24 = data.props;const _errs54 = errors;if(errors === _errs54){if(data24 && typeof data24 == "object" && !Array.isArray(data24)){let missing5;if((data24.name === undefined) && (missing5 = "name")){validate155.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/required",keyword:"required",params:{missingProperty: missing5},message:"must have required property '"+missing5+"'"}];return false;}else {const _errs56 = errors;for(const key5 in data24){if(!(key5 === "name")){validate155.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs56 === errors){if(data24.name !== undefined){let data25 = data24.name;const _errs57 = errors;if(errors === _errs57){if(typeof data25 === "string"){if(func2(data25) > 4000){validate155.errors = [{instancePath:instancePath+"/props/name",schemaPath:"#/properties/props/properties/name/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate155.errors = [{instancePath:instancePath+"/props/name",schemaPath:"#/properties/props/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}}}else {validate155.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs54 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data26 = data.dependencies;const _errs59 = errors;if(errors === _errs59){if(data26 && typeof data26 == "object" && !Array.isArray(data26)){for(const key6 in data26){const _errs61 = errors;if(typeof key6 === "string"){if(!pattern82.test(key6)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key6};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid6 = _errs61 === errors;if(!valid6){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key6},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate155.errors = vErrors;return false;break;}}if(valid6){for(const key7 in data26){let data27 = data26[key7];const _errs63 = errors;if(errors === _errs63){if(data27 && typeof data27 == "object" && !Array.isArray(data27)){const _errs65 = errors;for(const key8 in data27){if(!((key8 === "text") || (key8 === "data"))){validate155.errors = [{instancePath:instancePath+"/dependencies/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key8},message:"must NOT have additional properties"}];return false;break;}}if(_errs65 === errors){if(data27.text !== undefined){let data28 = data27.text;const _errs66 = errors;if(errors === _errs66){if(data28 && typeof data28 == "object" && !Array.isArray(data28)){for(const key9 in data28){let data29 = data28[key9];const _errs69 = errors;if(errors === _errs69){if(typeof data29 === "string"){if(func2(data29) > 4000){validate155.errors = [{instancePath:instancePath+"/dependencies/" + key7.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key9.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate155.errors = [{instancePath:instancePath+"/dependencies/" + key7.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key9.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid9 = _errs69 === errors;if(!valid9){break;}}}else {validate155.errors = [{instancePath:instancePath+"/dependencies/" + key7.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid8 = _errs66 === errors;}else {var valid8 = true;}if(valid8){if(data27.data !== undefined){let data30 = data27.data;const _errs71 = errors;if(!(data30 && typeof data30 == "object" && !Array.isArray(data30))){validate155.errors = [{instancePath:instancePath+"/dependencies/" + key7.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid8 = _errs71 === errors;}else {var valid8 = true;}}}}else {validate155.errors = [{instancePath:instancePath+"/dependencies/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid7 = _errs63 === errors;if(!valid7){break;}}}}else {validate155.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs59 === errors;}else {var valid0 = true;}}}}}}}else {validate155.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate155.errors = vErrors;return errors === 0;}validate155.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_task_outcome = validate156;const schema226 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/task-outcome.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":102,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["outputs"],"properties":{"outputs":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}}};function validate156(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/task-outcome.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate156.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate156.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate156.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 102){validate156.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 102},message:"must NOT have more than 102 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate156.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate156.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate156.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.outputs === undefined) && (missing1 = "outputs")){validate156.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "outputs")){validate156.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.outputs !== undefined){let data3 = data2.outputs;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate156.errors = [{instancePath:instancePath+"/data/outputs",schemaPath:"#/properties/data/properties/outputs/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate156.errors = [{instancePath:instancePath+"/data/outputs/" + i0,schemaPath:"#/properties/data/properties/outputs/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate156.errors = [{instancePath:instancePath+"/data/outputs/" + i0,schemaPath:"#/properties/data/properties/outputs/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate156.errors = [{instancePath:instancePath+"/data/outputs",schemaPath:"#/properties/data/properties/outputs/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate156.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate156.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate156.errors = vErrors;return errors === 0;}validate156.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_template_playground = validate157;const schema227 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/template-playground.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":84,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["hosts","presets","initialSelection1","initialSelection2"],"properties":{"hosts":{"type":"object","maxProperties":30,"additionalProperties":{"type":"object","additionalProperties":false,"required":["hostname","ip","mem","cpus"],"properties":{"hostname":{"type":"string","maxLength":4000},"ip":{"type":"string","maxLength":4000},"mem":{"type":"integer"},"cpus":{"type":"integer"}}}},"presets":{"type":"array","maxItems":20,"items":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}}},"initialSelection1":{"type":"string","maxLength":4000},"initialSelection2":{"type":"string","maxLength":4000}}}}};function validate157(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/template-playground.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate157.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate157.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate157.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 84){validate157.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 84},message:"must NOT have more than 84 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate157.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate157.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate157.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((((data2.hosts === undefined) && (missing1 = "hosts")) || ((data2.presets === undefined) && (missing1 = "presets"))) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))) || ((data2.initialSelection2 === undefined) && (missing1 = "initialSelection2"))){validate157.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((((key2 === "hosts") || (key2 === "presets")) || (key2 === "initialSelection1")) || (key2 === "initialSelection2"))){validate157.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.hosts !== undefined){let data3 = data2.hosts;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){if(Object.keys(data3).length > 30){validate157.errors = [{instancePath:instancePath+"/data/hosts",schemaPath:"#/properties/data/properties/hosts/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data3){let data4 = data3[key3];const _errs13 = errors;if(errors === _errs13){if(data4 && typeof data4 == "object" && !Array.isArray(data4)){let missing2;if(((((data4.hostname === undefined) && (missing2 = "hostname")) || ((data4.ip === undefined) && (missing2 = "ip"))) || ((data4.mem === undefined) && (missing2 = "mem"))) || ((data4.cpus === undefined) && (missing2 = "cpus"))){validate157.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/hosts/additionalProperties/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs15 = errors;for(const key4 in data4){if(!((((key4 === "hostname") || (key4 === "ip")) || (key4 === "mem")) || (key4 === "cpus"))){validate157.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/hosts/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs15 === errors){if(data4.hostname !== undefined){let data5 = data4.hostname;const _errs16 = errors;if(errors === _errs16){if(typeof data5 === "string"){if(func2(data5) > 4000){validate157.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/hostname",schemaPath:"#/properties/data/properties/hosts/additionalProperties/properties/hostname/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate157.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/hostname",schemaPath:"#/properties/data/properties/hosts/additionalProperties/properties/hostname/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs16 === errors;}else {var valid4 = true;}if(valid4){if(data4.ip !== undefined){let data6 = data4.ip;const _errs18 = errors;if(errors === _errs18){if(typeof data6 === "string"){if(func2(data6) > 4000){validate157.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/ip",schemaPath:"#/properties/data/properties/hosts/additionalProperties/properties/ip/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate157.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/ip",schemaPath:"#/properties/data/properties/hosts/additionalProperties/properties/ip/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs18 === errors;}else {var valid4 = true;}if(valid4){if(data4.mem !== undefined){let data7 = data4.mem;const _errs20 = errors;if(!(((typeof data7 == "number") && (!(data7 % 1) && !isNaN(data7))) && (isFinite(data7)))){validate157.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/mem",schemaPath:"#/properties/data/properties/hosts/additionalProperties/properties/mem/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs20 === errors;}else {var valid4 = true;}if(valid4){if(data4.cpus !== undefined){let data8 = data4.cpus;const _errs22 = errors;if(!(((typeof data8 == "number") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))){validate157.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/cpus",schemaPath:"#/properties/data/properties/hosts/additionalProperties/properties/cpus/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs22 === errors;}else {var valid4 = true;}}}}}}}else {validate157.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/hosts/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs13 === errors;if(!valid3){break;}}}}else {validate157.errors = [{instancePath:instancePath+"/data/hosts",schemaPath:"#/properties/data/properties/hosts/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.presets !== undefined){let data9 = data2.presets;const _errs24 = errors;if(errors === _errs24){if(Array.isArray(data9)){if(data9.length > 20){validate157.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len0 = data9.length;for(let i0=0; i0 30){validate157.errors = [{instancePath:instancePath+"/data/presets/" + i0,schemaPath:"#/properties/data/properties/presets/items/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key5 in data10){let data11 = data10[key5];const _errs29 = errors;if(errors === _errs29){if(typeof data11 === "string"){if(func2(data11) > 4000){validate157.errors = [{instancePath:instancePath+"/data/presets/" + i0+"/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/presets/items/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate157.errors = [{instancePath:instancePath+"/data/presets/" + i0+"/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/presets/items/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs29 === errors;if(!valid6){break;}}}}else {validate157.errors = [{instancePath:instancePath+"/data/presets/" + i0,schemaPath:"#/properties/data/properties/presets/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs26 === errors;if(!valid5){break;}}}}else {validate157.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs24 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data12 = data2.initialSelection1;const _errs31 = errors;if(errors === _errs31){if(typeof data12 === "string"){if(func2(data12) > 4000){validate157.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate157.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs31 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection2 !== undefined){let data13 = data2.initialSelection2;const _errs33 = errors;if(errors === _errs33){if(typeof data13 === "string"){if(func2(data13) > 4000){validate157.errors = [{instancePath:instancePath+"/data/initialSelection2",schemaPath:"#/properties/data/properties/initialSelection2/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate157.errors = [{instancePath:instancePath+"/data/initialSelection2",schemaPath:"#/properties/data/properties/initialSelection2/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs33 === errors;}else {var valid2 = true;}}}}}}}else {validate157.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate157.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate157.errors = vErrors;return errors === 0;}validate157.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_variable_name_checker = validate158;const schema228 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/variable-name-checker.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["presets"],"properties":{"presets":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}}};function validate158(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/variable-name-checker.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate158.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate158.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate158.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate158.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate158.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate158.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate158.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.presets === undefined) && (missing1 = "presets")){validate158.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "presets")){validate158.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.presets !== undefined){let data3 = data2.presets;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate158.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate158.errors = [{instancePath:instancePath+"/data/presets/" + i0,schemaPath:"#/properties/data/properties/presets/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate158.errors = [{instancePath:instancePath+"/data/presets/" + i0,schemaPath:"#/properties/data/properties/presets/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate158.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate158.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate158.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate158.errors = vErrors;return errors === 0;}validate158.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_variable_precedence = validate159;const schema229 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/variable-precedence.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":36,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["levels"],"properties":{"levels":{"type":"array","maxItems":20,"items":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}}}}}}};function validate159(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/variable-precedence.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate159.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate159.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate159.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 36){validate159.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 36},message:"must NOT have more than 36 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate159.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate159.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate159.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.levels === undefined) && (missing1 = "levels")){validate159.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "levels")){validate159.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.levels !== undefined){let data3 = data2.levels;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate159.errors = [{instancePath:instancePath+"/data/levels",schemaPath:"#/properties/data/properties/levels/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 30){validate159.errors = [{instancePath:instancePath+"/data/levels/" + i0,schemaPath:"#/properties/data/properties/levels/items/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data4){let data5 = data4[key3];const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate159.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/levels/items/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate159.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/levels/items/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;if(!valid4){break;}}}}else {validate159.errors = [{instancePath:instancePath+"/data/levels/" + i0,schemaPath:"#/properties/data/properties/levels/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate159.errors = [{instancePath:instancePath+"/data/levels",schemaPath:"#/properties/data/properties/levels/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate159.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate159.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate159.errors = vErrors;return errors === 0;}validate159.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_variable_substitution = validate160;const schema230 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/variable-substitution.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":54,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false}}};function validate160(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/variable-substitution.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate160.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate160.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate160.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 54){validate160.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 54},message:"must NOT have more than 54 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate160.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate160.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate160.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate160.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate160.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate160.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate160.errors = vErrors;return errors === 0;}validate160.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_vault_commands = validate161;const schema231 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/vault-commands.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["commands"],"properties":{"commands":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["cmd","run","before","after","prompts","text"],"properties":{"cmd":{"type":"string","maxLength":4000},"run":{"type":"string","maxLength":4000},"before":{"anyOf":[{"type":"null"},{"type":"string","maxLength":4000}]},"after":{"type":"string","maxLength":4000},"prompts":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"text":{"type":"string","maxLength":4000}}}}}}}};function validate161(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/vault-commands.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate161.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate161.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate161.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate161.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate161.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate161.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate161.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.commands === undefined) && (missing1 = "commands")){validate161.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "commands")){validate161.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.commands !== undefined){let data3 = data2.commands;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate161.errors = [{instancePath:instancePath+"/data/commands",schemaPath:"#/properties/data/properties/commands/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate161.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/cmd",schemaPath:"#/properties/data/properties/commands/items/properties/cmd/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate161.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/cmd",schemaPath:"#/properties/data/properties/commands/items/properties/cmd/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.run !== undefined){let data6 = data4.run;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate161.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/run",schemaPath:"#/properties/data/properties/commands/items/properties/run/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate161.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/run",schemaPath:"#/properties/data/properties/commands/items/properties/run/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.before !== undefined){let data7 = data4.before;const _errs19 = errors;const _errs20 = errors;let valid5 = false;const _errs21 = errors;if(data7 !== null){const err0 = {instancePath:instancePath+"/data/commands/" + i0+"/before",schemaPath:"#/properties/data/properties/commands/items/properties/before/anyOf/0/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}var _valid0 = _errs21 === errors;valid5 = valid5 || _valid0;const _errs23 = errors;if(errors === _errs23){if(typeof data7 === "string"){if(func2(data7) > 4000){const err1 = {instancePath:instancePath+"/data/commands/" + i0+"/before",schemaPath:"#/properties/data/properties/commands/items/properties/before/anyOf/1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}else {const err2 = {instancePath:instancePath+"/data/commands/" + i0+"/before",schemaPath:"#/properties/data/properties/commands/items/properties/before/anyOf/1/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}var _valid0 = _errs23 === errors;valid5 = valid5 || _valid0;if(!valid5){const err3 = {instancePath:instancePath+"/data/commands/" + i0+"/before",schemaPath:"#/properties/data/properties/commands/items/properties/before/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;validate161.errors = vErrors;return false;}else {errors = _errs20;if(vErrors !== null){if(_errs20){vErrors.length = _errs20;}else {vErrors = null;}}}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data4.after !== undefined){let data8 = data4.after;const _errs25 = errors;if(errors === _errs25){if(typeof data8 === "string"){if(func2(data8) > 4000){validate161.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/after",schemaPath:"#/properties/data/properties/commands/items/properties/after/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate161.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/after",schemaPath:"#/properties/data/properties/commands/items/properties/after/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs25 === errors;}else {var valid4 = true;}if(valid4){if(data4.prompts !== undefined){let data9 = data4.prompts;const _errs27 = errors;if(errors === _errs27){if(Array.isArray(data9)){if(data9.length > 20){validate161.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/prompts",schemaPath:"#/properties/data/properties/commands/items/properties/prompts/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid6 = true;const len1 = data9.length;for(let i1=0; i1 4000){validate161.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/prompts/" + i1,schemaPath:"#/properties/data/properties/commands/items/properties/prompts/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate161.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/prompts/" + i1,schemaPath:"#/properties/data/properties/commands/items/properties/prompts/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs29 === errors;if(!valid6){break;}}}}else {validate161.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/prompts",schemaPath:"#/properties/data/properties/commands/items/properties/prompts/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs27 === errors;}else {var valid4 = true;}if(valid4){if(data4.text !== undefined){let data11 = data4.text;const _errs31 = errors;if(errors === _errs31){if(typeof data11 === "string"){if(func2(data11) > 4000){validate161.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/text",schemaPath:"#/properties/data/properties/commands/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate161.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/text",schemaPath:"#/properties/data/properties/commands/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs31 === errors;}else {var valid4 = true;}}}}}}}}}else {validate161.errors = [{instancePath:instancePath+"/data/commands/" + i0,schemaPath:"#/properties/data/properties/commands/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate161.errors = [{instancePath:instancePath+"/data/commands",schemaPath:"#/properties/data/properties/commands/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate161.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate161.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate161.errors = vErrors;return errors === 0;}validate161.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_verbosity = validate162;const schema232 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/verbosity.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["levels"],"properties":{"levels":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["flag","text","lines"],"properties":{"flag":{"type":"string","maxLength":4000},"text":{"type":"string","maxLength":4000},"lines":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}}}}}};function validate162(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/verbosity.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate162.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate162.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate162.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate162.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate162.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate162.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate162.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.levels === undefined) && (missing1 = "levels")){validate162.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "levels")){validate162.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.levels !== undefined){let data3 = data2.levels;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate162.errors = [{instancePath:instancePath+"/data/levels",schemaPath:"#/properties/data/properties/levels/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate162.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/flag",schemaPath:"#/properties/data/properties/levels/items/properties/flag/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate162.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/flag",schemaPath:"#/properties/data/properties/levels/items/properties/flag/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.text !== undefined){let data6 = data4.text;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate162.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/text",schemaPath:"#/properties/data/properties/levels/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate162.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/text",schemaPath:"#/properties/data/properties/levels/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.lines !== undefined){let data7 = data4.lines;const _errs19 = errors;if(errors === _errs19){if(Array.isArray(data7)){if(data7.length > 20){validate162.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/lines",schemaPath:"#/properties/data/properties/levels/items/properties/lines/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data7.length;for(let i1=0; i1 4000){validate162.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/lines/" + i1,schemaPath:"#/properties/data/properties/levels/items/properties/lines/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate162.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/lines/" + i1,schemaPath:"#/properties/data/properties/levels/items/properties/lines/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs21 === errors;if(!valid5){break;}}}}else {validate162.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/lines",schemaPath:"#/properties/data/properties/levels/items/properties/lines/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs19 === errors;}else {var valid4 = true;}}}}}}else {validate162.errors = [{instancePath:instancePath+"/data/levels/" + i0,schemaPath:"#/properties/data/properties/levels/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate162.errors = [{instancePath:instancePath+"/data/levels",schemaPath:"#/properties/data/properties/levels/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate162.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate162.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate162.errors = vErrors;return errors === 0;}validate162.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_yaml_multiline = validate163;const schema233 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/yaml-multiline.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["lines","initialSelection1"],"properties":{"lines":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate163(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/yaml-multiline.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate163.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate163.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate163.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate163.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate163.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate163.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate163.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.lines === undefined) && (missing1 = "lines")) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate163.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "lines") || (key2 === "initialSelection1"))){validate163.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.lines !== undefined){let data3 = data2.lines;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate163.errors = [{instancePath:instancePath+"/data/lines",schemaPath:"#/properties/data/properties/lines/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate163.errors = [{instancePath:instancePath+"/data/lines/" + i0,schemaPath:"#/properties/data/properties/lines/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate163.errors = [{instancePath:instancePath+"/data/lines/" + i0,schemaPath:"#/properties/data/properties/lines/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate163.errors = [{instancePath:instancePath+"/data/lines",schemaPath:"#/properties/data/properties/lines/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data5 = data2.initialSelection1;const _errs14 = errors;if(errors === _errs14){if(typeof data5 === "string"){if(func2(data5) > 4000){validate163.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate163.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs14 === errors;}else {var valid2 = true;}}}}}else {validate163.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate163.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate163.errors = vErrors;return errors === 0;}validate163.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; +export const validate_admin_module_finder = validate127;const schema195 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/admin-module-finder.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["areas","initialSelection1"],"properties":{"areas":{"type":"object","maxProperties":30,"additionalProperties":{"type":"array","maxItems":20,"items":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}},"initialSelection1":{"type":"string","maxLength":4000}}}}};const func2 = runtime0;function validate127(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/admin-module-finder.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate127.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate127.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate127.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate127.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate127.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate127.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate127.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.areas === undefined) && (missing1 = "areas")) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate127.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "areas") || (key2 === "initialSelection1"))){validate127.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.areas !== undefined){let data3 = data2.areas;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){if(Object.keys(data3).length > 30){validate127.errors = [{instancePath:instancePath+"/data/areas",schemaPath:"#/properties/data/properties/areas/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data3){let data4 = data3[key3];const _errs13 = errors;if(errors === _errs13){if(Array.isArray(data4)){if(data4.length > 20){validate127.errors = [{instancePath:instancePath+"/data/areas/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/areas/additionalProperties/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid4 = true;const len0 = data4.length;for(let i0=0; i0 20){validate127.errors = [{instancePath:instancePath+"/data/areas/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/properties/areas/additionalProperties/items/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data5.length;for(let i1=0; i1 4000){validate127.errors = [{instancePath:instancePath+"/data/areas/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/" + i1,schemaPath:"#/properties/data/properties/areas/additionalProperties/items/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate127.errors = [{instancePath:instancePath+"/data/areas/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/" + i1,schemaPath:"#/properties/data/properties/areas/additionalProperties/items/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs17 === errors;if(!valid5){break;}}}}else {validate127.errors = [{instancePath:instancePath+"/data/areas/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/properties/areas/additionalProperties/items/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs15 === errors;if(!valid4){break;}}}}else {validate127.errors = [{instancePath:instancePath+"/data/areas/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/areas/additionalProperties/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid3 = _errs13 === errors;if(!valid3){break;}}}}else {validate127.errors = [{instancePath:instancePath+"/data/areas",schemaPath:"#/properties/data/properties/areas/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data7 = data2.initialSelection1;const _errs19 = errors;if(errors === _errs19){if(typeof data7 === "string"){if(func2(data7) > 4000){validate127.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate127.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs19 === errors;}else {var valid2 = true;}}}}}else {validate127.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate127.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate127.errors = vErrors;return errors === 0;}validate127.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_annotated_yaml = validate128;const schema196 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/annotated-yaml.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","additionalProperties":false,"required":["ayamlHint","widgetLabel"],"properties":{"ayamlHint":{"type":"string","maxLength":4000},"widgetLabel":{"type":"string","maxLength":4000}}},"data":{"type":"object","additionalProperties":false},"props":{"type":"object","additionalProperties":false,"required":["title","code","notes"],"properties":{"title":{"type":"string","maxLength":4000},"code":{"type":"string","maxLength":4000},"notes":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["lines","title","text"],"properties":{"lines":{"type":"array","maxItems":20,"items":{"type":"integer"}},"title":{"type":"string","maxLength":4000},"text":{"type":"string","maxLength":4000}}}}}}}};function validate128(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/annotated-yaml.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate128.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate128.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "props"))){validate128.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){let missing1;if(((data0.ayamlHint === undefined) && (missing1 = "ayamlHint")) || ((data0.widgetLabel === undefined) && (missing1 = "widgetLabel"))){validate128.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs4 = errors;for(const key1 in data0){if(!((key1 === "ayamlHint") || (key1 === "widgetLabel"))){validate128.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs4 === errors){if(data0.ayamlHint !== undefined){let data1 = data0.ayamlHint;const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate128.errors = [{instancePath:instancePath+"/text/ayamlHint",schemaPath:"#/properties/text/properties/ayamlHint/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/text/ayamlHint",schemaPath:"#/properties/text/properties/ayamlHint/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;}else {var valid1 = true;}if(valid1){if(data0.widgetLabel !== undefined){let data2 = data0.widgetLabel;const _errs7 = errors;if(errors === _errs7){if(typeof data2 === "string"){if(func2(data2) > 4000){validate128.errors = [{instancePath:instancePath+"/text/widgetLabel",schemaPath:"#/properties/text/properties/widgetLabel/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/text/widgetLabel",schemaPath:"#/properties/text/properties/widgetLabel/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs7 === errors;}else {var valid1 = true;}}}}}else {validate128.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data3 = data.data;const _errs9 = errors;if(errors === _errs9){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){for(const key2 in data3){validate128.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate128.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs9 === errors;}else {var valid0 = true;}if(valid0){if(data.props !== undefined){let data4 = data.props;const _errs12 = errors;if(errors === _errs12){if(data4 && typeof data4 == "object" && !Array.isArray(data4)){let missing2;if((((data4.title === undefined) && (missing2 = "title")) || ((data4.code === undefined) && (missing2 = "code"))) || ((data4.notes === undefined) && (missing2 = "notes"))){validate128.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs14 = errors;for(const key3 in data4){if(!(((key3 === "title") || (key3 === "code")) || (key3 === "notes"))){validate128.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs14 === errors){if(data4.title !== undefined){let data5 = data4.title;const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate128.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs15 === errors;}else {var valid2 = true;}if(valid2){if(data4.code !== undefined){let data6 = data4.code;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate128.errors = [{instancePath:instancePath+"/props/code",schemaPath:"#/properties/props/properties/code/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/props/code",schemaPath:"#/properties/props/properties/code/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}if(valid2){if(data4.notes !== undefined){let data7 = data4.notes;const _errs19 = errors;if(errors === _errs19){if(Array.isArray(data7)){if(data7.length > 20){validate128.errors = [{instancePath:instancePath+"/props/notes",schemaPath:"#/properties/props/properties/notes/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data7.length;for(let i0=0; i0 20){validate128.errors = [{instancePath:instancePath+"/props/notes/" + i0+"/lines",schemaPath:"#/properties/props/properties/notes/items/properties/lines/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data9.length;for(let i1=0; i1 4000){validate128.errors = [{instancePath:instancePath+"/props/notes/" + i0+"/title",schemaPath:"#/properties/props/properties/notes/items/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/props/notes/" + i0+"/title",schemaPath:"#/properties/props/properties/notes/items/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs28 === errors;}else {var valid4 = true;}if(valid4){if(data8.text !== undefined){let data12 = data8.text;const _errs30 = errors;if(errors === _errs30){if(typeof data12 === "string"){if(func2(data12) > 4000){validate128.errors = [{instancePath:instancePath+"/props/notes/" + i0+"/text",schemaPath:"#/properties/props/properties/notes/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate128.errors = [{instancePath:instancePath+"/props/notes/" + i0+"/text",schemaPath:"#/properties/props/properties/notes/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs30 === errors;}else {var valid4 = true;}}}}}}else {validate128.errors = [{instancePath:instancePath+"/props/notes/" + i0,schemaPath:"#/properties/props/properties/notes/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs21 === errors;if(!valid3){break;}}}}else {validate128.errors = [{instancePath:instancePath+"/props/notes",schemaPath:"#/properties/props/properties/notes/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs19 === errors;}else {var valid2 = true;}}}}}}else {validate128.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs12 === errors;}else {var valid0 = true;}}}}}}else {validate128.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate128.errors = vErrors;return errors === 0;}validate128.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_block_flow = validate129;const schema197 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/block-flow.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":72,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false}}};function validate129(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/block-flow.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate129.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate129.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate129.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 72){validate129.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 72},message:"must NOT have more than 72 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate129.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate129.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate129.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate129.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate129.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate129.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate129.errors = vErrors;return errors === 0;}validate129.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_build_roadmap = validate130;const schema198 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/build-roadmap.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["phases"],"properties":{"phases":{"type":"array","maxItems":28,"items":{"type":"object","additionalProperties":false,"required":["n","title","min","where","slug"],"properties":{"n":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"min":{"type":"integer"},"where":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"slug":{"type":"string","maxLength":4000}}}}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};const pattern90 = new RegExp("^[A-Z][A-Za-z0-9]*$", "u");function validate130(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/build-roadmap.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate130.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate130.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate130.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate130.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate130.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate130.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate130.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.phases === undefined) && (missing1 = "phases")){validate130.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "phases")){validate130.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.phases !== undefined){let data3 = data2.phases;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 28){validate130.errors = [{instancePath:instancePath+"/data/phases",schemaPath:"#/properties/data/properties/phases/maxItems",keyword:"maxItems",params:{limit: 28},message:"must NOT have more than 28 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate130.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/n",schemaPath:"#/properties/data/properties/phases/items/properties/n/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate130.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/n",schemaPath:"#/properties/data/properties/phases/items/properties/n/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.title !== undefined){let data6 = data4.title;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate130.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/title",schemaPath:"#/properties/data/properties/phases/items/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate130.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/title",schemaPath:"#/properties/data/properties/phases/items/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.min !== undefined){let data7 = data4.min;const _errs19 = errors;if(!(((typeof data7 == "number") && (!(data7 % 1) && !isNaN(data7))) && (isFinite(data7)))){validate130.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/min",schemaPath:"#/properties/data/properties/phases/items/properties/min/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data4.where !== undefined){let data8 = data4.where;const _errs21 = errors;if(errors === _errs21){if(Array.isArray(data8)){if(data8.length > 20){validate130.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/where",schemaPath:"#/properties/data/properties/phases/items/properties/where/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data8.length;for(let i1=0; i1 4000){validate130.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/where/" + i1,schemaPath:"#/properties/data/properties/phases/items/properties/where/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate130.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/where/" + i1,schemaPath:"#/properties/data/properties/phases/items/properties/where/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs23 === errors;if(!valid5){break;}}}}else {validate130.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/where",schemaPath:"#/properties/data/properties/phases/items/properties/where/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs21 === errors;}else {var valid4 = true;}if(valid4){if(data4.slug !== undefined){let data10 = data4.slug;const _errs25 = errors;if(errors === _errs25){if(typeof data10 === "string"){if(func2(data10) > 4000){validate130.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/slug",schemaPath:"#/properties/data/properties/phases/items/properties/slug/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate130.errors = [{instancePath:instancePath+"/data/phases/" + i0+"/slug",schemaPath:"#/properties/data/properties/phases/items/properties/slug/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs25 === errors;}else {var valid4 = true;}}}}}}}}else {validate130.errors = [{instancePath:instancePath+"/data/phases/" + i0,schemaPath:"#/properties/data/properties/phases/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate130.errors = [{instancePath:instancePath+"/data/phases",schemaPath:"#/properties/data/properties/phases/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate130.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data11 = data.dependencies;const _errs27 = errors;if(errors === _errs27){if(data11 && typeof data11 == "object" && !Array.isArray(data11)){for(const key4 in data11){const _errs29 = errors;if(typeof key4 === "string"){if(!pattern90.test(key4)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key4};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid6 = _errs29 === errors;if(!valid6){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key4},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate130.errors = vErrors;return false;break;}}if(valid6){for(const key5 in data11){let data12 = data11[key5];const _errs31 = errors;if(errors === _errs31){if(data12 && typeof data12 == "object" && !Array.isArray(data12)){const _errs33 = errors;for(const key6 in data12){if(!((key6 === "text") || (key6 === "data"))){validate130.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"}];return false;break;}}if(_errs33 === errors){if(data12.text !== undefined){let data13 = data12.text;const _errs34 = errors;if(errors === _errs34){if(data13 && typeof data13 == "object" && !Array.isArray(data13)){for(const key7 in data13){let data14 = data13[key7];const _errs37 = errors;if(errors === _errs37){if(typeof data14 === "string"){if(func2(data14) > 4000){validate130.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate130.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid9 = _errs37 === errors;if(!valid9){break;}}}else {validate130.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid8 = _errs34 === errors;}else {var valid8 = true;}if(valid8){if(data12.data !== undefined){let data15 = data12.data;const _errs39 = errors;if(!(data15 && typeof data15 == "object" && !Array.isArray(data15))){validate130.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid8 = _errs39 === errors;}else {var valid8 = true;}}}}else {validate130.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid7 = _errs31 === errors;if(!valid7){break;}}}}else {validate130.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs27 === errors;}else {var valid0 = true;}}}}}}else {validate130.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate130.errors = vErrors;return errors === 0;}validate130.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_check_mode_sim = validate131;const schema199 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/check-mode-sim.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":72,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false}}};function validate131(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/check-mode-sim.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate131.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate131.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate131.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 72){validate131.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 72},message:"must NOT have more than 72 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate131.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate131.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate131.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate131.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate131.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate131.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate131.errors = vErrors;return errors === 0;}validate131.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_command_vs_module = validate132;const schema200 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/command-vs-module.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":48,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false}}};function validate132(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/command-vs-module.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate132.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate132.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate132.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 48){validate132.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 48},message:"must NOT have more than 48 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate132.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate132.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate132.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate132.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate132.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate132.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate132.errors = vErrors;return errors === 0;}validate132.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_condition_playground = validate133;const schema201 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/condition-playground.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":84,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["hosts"],"properties":{"hosts":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["name","distribution","major","version","mem","vars"],"properties":{"name":{"type":"string","maxLength":4000},"distribution":{"type":"string","maxLength":4000},"major":{"type":"string","maxLength":4000},"version":{"type":"string","maxLength":4000},"mem":{"type":"integer"},"vars":{"type":"object","additionalProperties":false,"properties":{"my_service":{"type":"string","maxLength":4000}}}}}}}}}};function validate133(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/condition-playground.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate133.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate133.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate133.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 84){validate133.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 84},message:"must NOT have more than 84 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate133.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate133.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.hosts === undefined) && (missing1 = "hosts")){validate133.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "hosts")){validate133.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.hosts !== undefined){let data3 = data2.hosts;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate133.errors = [{instancePath:instancePath+"/data/hosts",schemaPath:"#/properties/data/properties/hosts/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate133.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/name",schemaPath:"#/properties/data/properties/hosts/items/properties/name/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/name",schemaPath:"#/properties/data/properties/hosts/items/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.distribution !== undefined){let data6 = data4.distribution;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate133.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/distribution",schemaPath:"#/properties/data/properties/hosts/items/properties/distribution/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/distribution",schemaPath:"#/properties/data/properties/hosts/items/properties/distribution/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.major !== undefined){let data7 = data4.major;const _errs19 = errors;if(errors === _errs19){if(typeof data7 === "string"){if(func2(data7) > 4000){validate133.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/major",schemaPath:"#/properties/data/properties/hosts/items/properties/major/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/major",schemaPath:"#/properties/data/properties/hosts/items/properties/major/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data4.version !== undefined){let data8 = data4.version;const _errs21 = errors;if(errors === _errs21){if(typeof data8 === "string"){if(func2(data8) > 4000){validate133.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/version",schemaPath:"#/properties/data/properties/hosts/items/properties/version/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/version",schemaPath:"#/properties/data/properties/hosts/items/properties/version/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs21 === errors;}else {var valid4 = true;}if(valid4){if(data4.mem !== undefined){let data9 = data4.mem;const _errs23 = errors;if(!(((typeof data9 == "number") && (!(data9 % 1) && !isNaN(data9))) && (isFinite(data9)))){validate133.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/mem",schemaPath:"#/properties/data/properties/hosts/items/properties/mem/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs23 === errors;}else {var valid4 = true;}if(valid4){if(data4.vars !== undefined){let data10 = data4.vars;const _errs25 = errors;if(errors === _errs25){if(data10 && typeof data10 == "object" && !Array.isArray(data10)){const _errs27 = errors;for(const key4 in data10){if(!(key4 === "my_service")){validate133.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/vars",schemaPath:"#/properties/data/properties/hosts/items/properties/vars/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs27 === errors){if(data10.my_service !== undefined){let data11 = data10.my_service;const _errs28 = errors;if(errors === _errs28){if(typeof data11 === "string"){if(func2(data11) > 4000){validate133.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/vars/my_service",schemaPath:"#/properties/data/properties/hosts/items/properties/vars/properties/my_service/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate133.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/vars/my_service",schemaPath:"#/properties/data/properties/hosts/items/properties/vars/properties/my_service/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}}else {validate133.errors = [{instancePath:instancePath+"/data/hosts/" + i0+"/vars",schemaPath:"#/properties/data/properties/hosts/items/properties/vars/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid4 = _errs25 === errors;}else {var valid4 = true;}}}}}}}}}else {validate133.errors = [{instancePath:instancePath+"/data/hosts/" + i0,schemaPath:"#/properties/data/properties/hosts/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate133.errors = [{instancePath:instancePath+"/data/hosts",schemaPath:"#/properties/data/properties/hosts/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate133.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate133.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate133.errors = vErrors;return errors === 0;}validate133.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_cron_builder = validate134;const schema202 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/cron-builder.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":99,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","maxProperties":30,"additionalProperties":{"type":"array","maxItems":20,"items":{"anyOf":[{"type":"object","additionalProperties":false,"required":["label"],"properties":{"key":{"type":"string","maxLength":4000},"label":{"type":"string","maxLength":4000},"hint":{"type":"string","maxLength":4000},"v":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}}}},{"type":"string","maxLength":4000}]}}}}};function validate134(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/cron-builder.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate134.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate134.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate134.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 99){validate134.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 99},message:"must NOT have more than 99 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate134.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate134.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate134.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){if(Object.keys(data2).length > 30){validate134.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key2 in data2){let data3 = data2[key2];const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate134.errors = [{instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){const err2 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/key",schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/key/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}else {const err3 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/key",schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/key/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}var valid5 = _errs17 === errors;}else {var valid5 = true;}if(valid5){if(data4.label !== undefined){let data6 = data4.label;const _errs19 = errors;if(errors === _errs19){if(typeof data6 === "string"){if(func2(data6) > 4000){const err4 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/label",schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}else {const err5 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/label",schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}var valid5 = _errs19 === errors;}else {var valid5 = true;}if(valid5){if(data4.hint !== undefined){let data7 = data4.hint;const _errs21 = errors;if(errors === _errs21){if(typeof data7 === "string"){if(func2(data7) > 4000){const err6 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/hint",schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/hint/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}else {const err7 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/hint",schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/hint/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}var valid5 = _errs21 === errors;}else {var valid5 = true;}if(valid5){if(data4.v !== undefined){let data8 = data4.v;const _errs23 = errors;if(errors === _errs23){if(data8 && typeof data8 == "object" && !Array.isArray(data8)){if(Object.keys(data8).length > 30){const err8 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/v",schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/v/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}else {for(const key4 in data8){let data9 = data8[key4];const _errs26 = errors;if(errors === _errs26){if(typeof data9 === "string"){if(func2(data9) > 4000){const err9 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/v/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/v/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}else {const err10 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/v/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/v/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}}var valid6 = _errs26 === errors;if(!valid6){break;}}}}else {const err11 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/v",schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/properties/v/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}var valid5 = _errs23 === errors;}else {var valid5 = true;}}}}}}}else {const err12 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/additionalProperties/items/anyOf/0/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}var _valid0 = _errs14 === errors;valid4 = valid4 || _valid0;const _errs28 = errors;if(errors === _errs28){if(typeof data4 === "string"){if(func2(data4) > 4000){const err13 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/additionalProperties/items/anyOf/1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}else {const err14 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/additionalProperties/items/anyOf/1/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}var _valid0 = _errs28 === errors;valid4 = valid4 || _valid0;if(!valid4){const err15 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/additionalProperties/items/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;validate134.errors = vErrors;return false;}else {errors = _errs13;if(vErrors !== null){if(_errs13){vErrors.length = _errs13;}else {vErrors = null;}}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate134.errors = [{instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;if(!valid2){break;}}}}else {validate134.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate134.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate134.errors = vErrors;return errors === 0;}validate134.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_custom_fact_builder = validate135;const schema203 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/custom-fact-builder.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":39,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["start","initialSelection1"],"properties":{"start":{"type":"string","maxLength":4000},"initialSelection1":{"type":"string","maxLength":4000}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate135(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/custom-fact-builder.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate135.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate135.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate135.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 39){validate135.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 39},message:"must NOT have more than 39 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate135.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate135.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate135.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.start === undefined) && (missing1 = "start")) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate135.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "start") || (key2 === "initialSelection1"))){validate135.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.start !== undefined){let data3 = data2.start;const _errs10 = errors;if(errors === _errs10){if(typeof data3 === "string"){if(func2(data3) > 4000){validate135.errors = [{instancePath:instancePath+"/data/start",schemaPath:"#/properties/data/properties/start/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate135.errors = [{instancePath:instancePath+"/data/start",schemaPath:"#/properties/data/properties/start/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data4 = data2.initialSelection1;const _errs12 = errors;if(errors === _errs12){if(typeof data4 === "string"){if(func2(data4) > 4000){validate135.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate135.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs12 === errors;}else {var valid2 = true;}}}}}else {validate135.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data5 = data.dependencies;const _errs14 = errors;if(errors === _errs14){if(data5 && typeof data5 == "object" && !Array.isArray(data5)){for(const key3 in data5){const _errs16 = errors;if(typeof key3 === "string"){if(!pattern90.test(key3)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key3};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid3 = _errs16 === errors;if(!valid3){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key3},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate135.errors = vErrors;return false;break;}}if(valid3){for(const key4 in data5){let data6 = data5[key4];const _errs18 = errors;if(errors === _errs18){if(data6 && typeof data6 == "object" && !Array.isArray(data6)){const _errs20 = errors;for(const key5 in data6){if(!((key5 === "text") || (key5 === "data"))){validate135.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs20 === errors){if(data6.text !== undefined){let data7 = data6.text;const _errs21 = errors;if(errors === _errs21){if(data7 && typeof data7 == "object" && !Array.isArray(data7)){for(const key6 in data7){let data8 = data7[key6];const _errs24 = errors;if(errors === _errs24){if(typeof data8 === "string"){if(func2(data8) > 4000){validate135.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate135.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs24 === errors;if(!valid6){break;}}}else {validate135.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs21 === errors;}else {var valid5 = true;}if(valid5){if(data6.data !== undefined){let data9 = data6.data;const _errs26 = errors;if(!(data9 && typeof data9 == "object" && !Array.isArray(data9))){validate135.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid5 = _errs26 === errors;}else {var valid5 = true;}}}}else {validate135.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid4 = _errs18 === errors;if(!valid4){break;}}}}else {validate135.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs14 === errors;}else {var valid0 = true;}}}}}}else {validate135.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate135.errors = vErrors;return errors === 0;}validate135.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_data_explorer = validate136;const schema204 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/data-explorer.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false},"props":{"type":"object","additionalProperties":false,"required":["name","data","initial"],"properties":{"name":{"type":"string","maxLength":4000},"data":{"type":"object","additionalProperties":false,"properties":{"bjones":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"acook":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"changed":{"type":"boolean"},"msg":{"type":"string","maxLength":4000},"results":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["ansible_loop_var","item","changed","cmd","rc","stdout","stdout_lines","failed"],"properties":{"ansible_loop_var":{"type":"string","maxLength":4000},"item":{"type":"string","maxLength":4000},"changed":{"type":"boolean"},"cmd":{"type":"string","maxLength":4000},"rc":{"type":"integer"},"stdout":{"type":"string","maxLength":4000},"stdout_lines":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"failed":{"type":"boolean"}}}},"skipped":{"type":"boolean"}}},"initial":{"type":"array","maxItems":20,"items":{"anyOf":[{"type":"string","maxLength":4000},{"type":"integer"}]}}}}}};function validate136(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/data-explorer.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate136.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate136.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "props"))){validate136.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate136.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate136.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate136.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate136.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate136.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate136.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.props !== undefined){let data3 = data.props;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){let missing1;if((((data3.name === undefined) && (missing1 = "name")) || ((data3.data === undefined) && (missing1 = "data"))) || ((data3.initial === undefined) && (missing1 = "initial"))){validate136.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs12 = errors;for(const key3 in data3){if(!(((key3 === "name") || (key3 === "data")) || (key3 === "initial"))){validate136.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs12 === errors){if(data3.name !== undefined){let data4 = data3.name;const _errs13 = errors;if(errors === _errs13){if(typeof data4 === "string"){if(func2(data4) > 4000){validate136.errors = [{instancePath:instancePath+"/props/name",schemaPath:"#/properties/props/properties/name/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate136.errors = [{instancePath:instancePath+"/props/name",schemaPath:"#/properties/props/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs13 === errors;}else {var valid2 = true;}if(valid2){if(data3.data !== undefined){let data5 = data3.data;const _errs15 = errors;if(errors === _errs15){if(data5 && typeof data5 == "object" && !Array.isArray(data5)){const _errs17 = errors;for(const key4 in data5){if(!((((((key4 === "bjones") || (key4 === "acook")) || (key4 === "changed")) || (key4 === "msg")) || (key4 === "results")) || (key4 === "skipped"))){validate136.errors = [{instancePath:instancePath+"/props/data",schemaPath:"#/properties/props/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs17 === errors){if(data5.bjones !== undefined){let data6 = data5.bjones;const _errs18 = errors;if(errors === _errs18){if(data6 && typeof data6 == "object" && !Array.isArray(data6)){if(Object.keys(data6).length > 30){validate136.errors = [{instancePath:instancePath+"/props/data/bjones",schemaPath:"#/properties/props/properties/data/properties/bjones/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key5 in data6){let data7 = data6[key5];const _errs21 = errors;if(errors === _errs21){if(typeof data7 === "string"){if(func2(data7) > 4000){validate136.errors = [{instancePath:instancePath+"/props/data/bjones/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/props/properties/data/properties/bjones/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate136.errors = [{instancePath:instancePath+"/props/data/bjones/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/props/properties/data/properties/bjones/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs21 === errors;if(!valid4){break;}}}}else {validate136.errors = [{instancePath:instancePath+"/props/data/bjones",schemaPath:"#/properties/props/properties/data/properties/bjones/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs18 === errors;}else {var valid3 = true;}if(valid3){if(data5.acook !== undefined){let data8 = data5.acook;const _errs23 = errors;if(errors === _errs23){if(data8 && typeof data8 == "object" && !Array.isArray(data8)){if(Object.keys(data8).length > 30){validate136.errors = [{instancePath:instancePath+"/props/data/acook",schemaPath:"#/properties/props/properties/data/properties/acook/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key6 in data8){let data9 = data8[key6];const _errs26 = errors;if(errors === _errs26){if(typeof data9 === "string"){if(func2(data9) > 4000){validate136.errors = [{instancePath:instancePath+"/props/data/acook/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/props/properties/data/properties/acook/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate136.errors = [{instancePath:instancePath+"/props/data/acook/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/props/properties/data/properties/acook/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs26 === errors;if(!valid5){break;}}}}else {validate136.errors = [{instancePath:instancePath+"/props/data/acook",schemaPath:"#/properties/props/properties/data/properties/acook/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs23 === errors;}else {var valid3 = true;}if(valid3){if(data5.changed !== undefined){const _errs28 = errors;if(typeof data5.changed !== "boolean"){validate136.errors = [{instancePath:instancePath+"/props/data/changed",schemaPath:"#/properties/props/properties/data/properties/changed/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid3 = _errs28 === errors;}else {var valid3 = true;}if(valid3){if(data5.msg !== undefined){let data11 = data5.msg;const _errs30 = errors;if(errors === _errs30){if(typeof data11 === "string"){if(func2(data11) > 4000){validate136.errors = [{instancePath:instancePath+"/props/data/msg",schemaPath:"#/properties/props/properties/data/properties/msg/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate136.errors = [{instancePath:instancePath+"/props/data/msg",schemaPath:"#/properties/props/properties/data/properties/msg/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs30 === errors;}else {var valid3 = true;}if(valid3){if(data5.results !== undefined){let data12 = data5.results;const _errs32 = errors;if(errors === _errs32){if(Array.isArray(data12)){if(data12.length > 20){validate136.errors = [{instancePath:instancePath+"/props/data/results",schemaPath:"#/properties/props/properties/data/properties/results/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid6 = true;const len0 = data12.length;for(let i0=0; i0 4000){validate136.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/ansible_loop_var",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/ansible_loop_var/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate136.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/ansible_loop_var",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/ansible_loop_var/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs37 === errors;}else {var valid7 = true;}if(valid7){if(data13.item !== undefined){let data15 = data13.item;const _errs39 = errors;if(errors === _errs39){if(typeof data15 === "string"){if(func2(data15) > 4000){validate136.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/item",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/item/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate136.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/item",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/item/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs39 === errors;}else {var valid7 = true;}if(valid7){if(data13.changed !== undefined){const _errs41 = errors;if(typeof data13.changed !== "boolean"){validate136.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/changed",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/changed/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid7 = _errs41 === errors;}else {var valid7 = true;}if(valid7){if(data13.cmd !== undefined){let data17 = data13.cmd;const _errs43 = errors;if(errors === _errs43){if(typeof data17 === "string"){if(func2(data17) > 4000){validate136.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/cmd",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/cmd/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate136.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/cmd",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/cmd/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs43 === errors;}else {var valid7 = true;}if(valid7){if(data13.rc !== undefined){let data18 = data13.rc;const _errs45 = errors;if(!(((typeof data18 == "number") && (!(data18 % 1) && !isNaN(data18))) && (isFinite(data18)))){validate136.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/rc",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/rc/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid7 = _errs45 === errors;}else {var valid7 = true;}if(valid7){if(data13.stdout !== undefined){let data19 = data13.stdout;const _errs47 = errors;if(errors === _errs47){if(typeof data19 === "string"){if(func2(data19) > 4000){validate136.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/stdout",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/stdout/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate136.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/stdout",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/stdout/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs47 === errors;}else {var valid7 = true;}if(valid7){if(data13.stdout_lines !== undefined){let data20 = data13.stdout_lines;const _errs49 = errors;if(errors === _errs49){if(Array.isArray(data20)){if(data20.length > 20){validate136.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/stdout_lines",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/stdout_lines/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid8 = true;const len1 = data20.length;for(let i1=0; i1 4000){validate136.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/stdout_lines/" + i1,schemaPath:"#/properties/props/properties/data/properties/results/items/properties/stdout_lines/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate136.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/stdout_lines/" + i1,schemaPath:"#/properties/props/properties/data/properties/results/items/properties/stdout_lines/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid8 = _errs51 === errors;if(!valid8){break;}}}}else {validate136.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/stdout_lines",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/stdout_lines/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid7 = _errs49 === errors;}else {var valid7 = true;}if(valid7){if(data13.failed !== undefined){const _errs53 = errors;if(typeof data13.failed !== "boolean"){validate136.errors = [{instancePath:instancePath+"/props/data/results/" + i0+"/failed",schemaPath:"#/properties/props/properties/data/properties/results/items/properties/failed/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid7 = _errs53 === errors;}else {var valid7 = true;}}}}}}}}}}}else {validate136.errors = [{instancePath:instancePath+"/props/data/results/" + i0,schemaPath:"#/properties/props/properties/data/properties/results/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid6 = _errs34 === errors;if(!valid6){break;}}}}else {validate136.errors = [{instancePath:instancePath+"/props/data/results",schemaPath:"#/properties/props/properties/data/properties/results/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid3 = _errs32 === errors;}else {var valid3 = true;}if(valid3){if(data5.skipped !== undefined){const _errs55 = errors;if(typeof data5.skipped !== "boolean"){validate136.errors = [{instancePath:instancePath+"/props/data/skipped",schemaPath:"#/properties/props/properties/data/properties/skipped/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid3 = _errs55 === errors;}else {var valid3 = true;}}}}}}}}else {validate136.errors = [{instancePath:instancePath+"/props/data",schemaPath:"#/properties/props/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs15 === errors;}else {var valid2 = true;}if(valid2){if(data3.initial !== undefined){let data24 = data3.initial;const _errs57 = errors;if(errors === _errs57){if(Array.isArray(data24)){if(data24.length > 20){validate136.errors = [{instancePath:instancePath+"/props/initial",schemaPath:"#/properties/props/properties/initial/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid9 = true;const len2 = data24.length;for(let i2=0; i2 4000){const err0 = {instancePath:instancePath+"/props/initial/" + i2,schemaPath:"#/properties/props/properties/initial/items/anyOf/0/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}else {const err1 = {instancePath:instancePath+"/props/initial/" + i2,schemaPath:"#/properties/props/properties/initial/items/anyOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}var _valid0 = _errs61 === errors;valid10 = valid10 || _valid0;const _errs63 = errors;if(!(((typeof data25 == "number") && (!(data25 % 1) && !isNaN(data25))) && (isFinite(data25)))){const err2 = {instancePath:instancePath+"/props/initial/" + i2,schemaPath:"#/properties/props/properties/initial/items/anyOf/1/type",keyword:"type",params:{type: "integer"},message:"must be integer"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}var _valid0 = _errs63 === errors;valid10 = valid10 || _valid0;if(!valid10){const err3 = {instancePath:instancePath+"/props/initial/" + i2,schemaPath:"#/properties/props/properties/initial/items/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;validate136.errors = vErrors;return false;}else {errors = _errs60;if(vErrors !== null){if(_errs60){vErrors.length = _errs60;}else {vErrors = null;}}}var valid9 = _errs59 === errors;if(!valid9){break;}}}}else {validate136.errors = [{instancePath:instancePath+"/props/initial",schemaPath:"#/properties/props/properties/initial/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs57 === errors;}else {var valid2 = true;}}}}}}else {validate136.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs10 === errors;}else {var valid0 = true;}}}}}}else {validate136.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate136.errors = vErrors;return errors === 0;}validate136.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_error_decoder = validate137;const schema205 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/error-decoder.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["errors","stages","initialSelection1"],"properties":{"errors":{"type":"array","maxItems":28,"items":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}}},"stages":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate137(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/error-decoder.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate137.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate137.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate137.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate137.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate137.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate137.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate137.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((((data2.errors === undefined) && (missing1 = "errors")) || ((data2.stages === undefined) && (missing1 = "stages"))) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate137.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(((key2 === "errors") || (key2 === "stages")) || (key2 === "initialSelection1"))){validate137.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.errors !== undefined){let data3 = data2.errors;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 28){validate137.errors = [{instancePath:instancePath+"/data/errors",schemaPath:"#/properties/data/properties/errors/maxItems",keyword:"maxItems",params:{limit: 28},message:"must NOT have more than 28 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 30){validate137.errors = [{instancePath:instancePath+"/data/errors/" + i0,schemaPath:"#/properties/data/properties/errors/items/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data4){let data5 = data4[key3];const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate137.errors = [{instancePath:instancePath+"/data/errors/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/errors/items/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate137.errors = [{instancePath:instancePath+"/data/errors/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/errors/items/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;if(!valid4){break;}}}}else {validate137.errors = [{instancePath:instancePath+"/data/errors/" + i0,schemaPath:"#/properties/data/properties/errors/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate137.errors = [{instancePath:instancePath+"/data/errors",schemaPath:"#/properties/data/properties/errors/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.stages !== undefined){let data6 = data2.stages;const _errs17 = errors;if(errors === _errs17){if(Array.isArray(data6)){if(data6.length > 20){validate137.errors = [{instancePath:instancePath+"/data/stages",schemaPath:"#/properties/data/properties/stages/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data6.length;for(let i1=0; i1 4000){validate137.errors = [{instancePath:instancePath+"/data/stages/" + i1,schemaPath:"#/properties/data/properties/stages/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate137.errors = [{instancePath:instancePath+"/data/stages/" + i1,schemaPath:"#/properties/data/properties/stages/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs19 === errors;if(!valid5){break;}}}}else {validate137.errors = [{instancePath:instancePath+"/data/stages",schemaPath:"#/properties/data/properties/stages/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data8 = data2.initialSelection1;const _errs21 = errors;if(errors === _errs21){if(typeof data8 === "string"){if(func2(data8) > 4000){validate137.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate137.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs21 === errors;}else {var valid2 = true;}}}}}}else {validate137.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate137.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate137.errors = vErrors;return errors === 0;}validate137.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_fact_gathering = validate138;const schema206 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/fact-gathering.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["modes"],"properties":{"modes":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["label","yaml","steps","facts","text"],"properties":{"label":{"type":"string","maxLength":4000},"yaml":{"type":"string","maxLength":4000},"steps":{"type":"array","maxItems":20,"items":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}}},"facts":{"type":"string","maxLength":4000},"text":{"type":"string","maxLength":4000}}}}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate138(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/fact-gathering.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate138.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate138.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate138.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate138.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate138.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate138.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.modes === undefined) && (missing1 = "modes")){validate138.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "modes")){validate138.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.modes !== undefined){let data3 = data2.modes;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate138.errors = [{instancePath:instancePath+"/data/modes",schemaPath:"#/properties/data/properties/modes/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate138.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/label",schemaPath:"#/properties/data/properties/modes/items/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/label",schemaPath:"#/properties/data/properties/modes/items/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.yaml !== undefined){let data6 = data4.yaml;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate138.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/yaml",schemaPath:"#/properties/data/properties/modes/items/properties/yaml/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/yaml",schemaPath:"#/properties/data/properties/modes/items/properties/yaml/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.steps !== undefined){let data7 = data4.steps;const _errs19 = errors;if(errors === _errs19){if(Array.isArray(data7)){if(data7.length > 20){validate138.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/steps",schemaPath:"#/properties/data/properties/modes/items/properties/steps/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data7.length;for(let i1=0; i1 30){validate138.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/steps/" + i1,schemaPath:"#/properties/data/properties/modes/items/properties/steps/items/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key4 in data8){let data9 = data8[key4];const _errs24 = errors;if(errors === _errs24){if(typeof data9 === "string"){if(func2(data9) > 4000){validate138.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/steps/" + i1+"/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/modes/items/properties/steps/items/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/steps/" + i1+"/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/modes/items/properties/steps/items/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs24 === errors;if(!valid6){break;}}}}else {validate138.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/steps/" + i1,schemaPath:"#/properties/data/properties/modes/items/properties/steps/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs21 === errors;if(!valid5){break;}}}}else {validate138.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/steps",schemaPath:"#/properties/data/properties/modes/items/properties/steps/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data4.facts !== undefined){let data10 = data4.facts;const _errs26 = errors;if(errors === _errs26){if(typeof data10 === "string"){if(func2(data10) > 4000){validate138.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/facts",schemaPath:"#/properties/data/properties/modes/items/properties/facts/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/facts",schemaPath:"#/properties/data/properties/modes/items/properties/facts/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs26 === errors;}else {var valid4 = true;}if(valid4){if(data4.text !== undefined){let data11 = data4.text;const _errs28 = errors;if(errors === _errs28){if(typeof data11 === "string"){if(func2(data11) > 4000){validate138.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/text",schemaPath:"#/properties/data/properties/modes/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/data/modes/" + i0+"/text",schemaPath:"#/properties/data/properties/modes/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs28 === errors;}else {var valid4 = true;}}}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data/modes/" + i0,schemaPath:"#/properties/data/properties/modes/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate138.errors = [{instancePath:instancePath+"/data/modes",schemaPath:"#/properties/data/properties/modes/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate138.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data12 = data.dependencies;const _errs30 = errors;if(errors === _errs30){if(data12 && typeof data12 == "object" && !Array.isArray(data12)){for(const key5 in data12){const _errs32 = errors;if(typeof key5 === "string"){if(!pattern90.test(key5)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key5};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid7 = _errs32 === errors;if(!valid7){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key5},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate138.errors = vErrors;return false;break;}}if(valid7){for(const key6 in data12){let data13 = data12[key6];const _errs34 = errors;if(errors === _errs34){if(data13 && typeof data13 == "object" && !Array.isArray(data13)){const _errs36 = errors;for(const key7 in data13){if(!((key7 === "text") || (key7 === "data"))){validate138.errors = [{instancePath:instancePath+"/dependencies/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key7},message:"must NOT have additional properties"}];return false;break;}}if(_errs36 === errors){if(data13.text !== undefined){let data14 = data13.text;const _errs37 = errors;if(errors === _errs37){if(data14 && typeof data14 == "object" && !Array.isArray(data14)){for(const key8 in data14){let data15 = data14[key8];const _errs40 = errors;if(errors === _errs40){if(typeof data15 === "string"){if(func2(data15) > 4000){validate138.errors = [{instancePath:instancePath+"/dependencies/" + key6.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key8.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate138.errors = [{instancePath:instancePath+"/dependencies/" + key6.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key8.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid10 = _errs40 === errors;if(!valid10){break;}}}else {validate138.errors = [{instancePath:instancePath+"/dependencies/" + key6.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid9 = _errs37 === errors;}else {var valid9 = true;}if(valid9){if(data13.data !== undefined){let data16 = data13.data;const _errs42 = errors;if(!(data16 && typeof data16 == "object" && !Array.isArray(data16))){validate138.errors = [{instancePath:instancePath+"/dependencies/" + key6.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid9 = _errs42 === errors;}else {var valid9 = true;}}}}else {validate138.errors = [{instancePath:instancePath+"/dependencies/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid8 = _errs34 === errors;if(!valid8){break;}}}}else {validate138.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs30 === errors;}else {var valid0 = true;}}}}}}else {validate138.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate138.errors = vErrors;return errors === 0;}validate138.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_facts_explorer = validate139;const schema207 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/facts-explorer.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","additionalProperties":false},"data":{"type":"object","additionalProperties":false,"required":["sampleFacts"],"properties":{"sampleFacts":{"type":"object","additionalProperties":false,"required":["hostname","fqdn","domain","distribution","distribution_version","distribution_major_version","os_family","kernel","architecture","python_version","processor_count","processor_vcpus","memtotal_mb","memfree_mb","default_ipv4","all_ipv4_addresses","interfaces","dns","devices","selinux","virtualization_role","ansible_local"],"properties":{"hostname":{"type":"string","maxLength":4000},"fqdn":{"type":"string","maxLength":4000},"domain":{"type":"string","maxLength":4000},"distribution":{"type":"string","maxLength":4000},"distribution_version":{"type":"string","maxLength":4000},"distribution_major_version":{"type":"string","maxLength":4000},"os_family":{"type":"string","maxLength":4000},"kernel":{"type":"string","maxLength":4000},"architecture":{"type":"string","maxLength":4000},"python_version":{"type":"string","maxLength":4000},"processor_count":{"type":"integer"},"processor_vcpus":{"type":"integer"},"memtotal_mb":{"type":"integer"},"memfree_mb":{"type":"integer"},"default_ipv4":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"all_ipv4_addresses":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"interfaces":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"dns":{"type":"object","additionalProperties":false,"required":["nameservers","search"],"properties":{"nameservers":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"search":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}},"devices":{"type":"object","additionalProperties":false,"required":["vda"],"properties":{"vda":{"type":"object","additionalProperties":false,"required":["size","partitions"],"properties":{"size":{"type":"string","maxLength":4000},"partitions":{"type":"object","additionalProperties":false,"required":["vda1","vda4"],"properties":{"vda1":{"type":"object","additionalProperties":false,"required":["size"],"properties":{"size":{"type":"string","maxLength":4000}}},"vda4":{"type":"object","additionalProperties":false,"required":["size"],"properties":{"size":{"type":"string","maxLength":4000}}}}}}}}},"selinux":{"type":"object","additionalProperties":false,"required":["status","mode"],"properties":{"status":{"type":"string","maxLength":4000},"mode":{"type":"string","maxLength":4000}}},"virtualization_role":{"type":"string","maxLength":4000},"ansible_local":{"type":"object","additionalProperties":false}}}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};const func1 = Object.prototype.hasOwnProperty;function validate139(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/facts-explorer.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate139.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate139.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate139.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){for(const key1 in data0){validate139.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}else {validate139.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data1 = data.data;const _errs5 = errors;if(errors === _errs5){if(data1 && typeof data1 == "object" && !Array.isArray(data1)){let missing1;if((data1.sampleFacts === undefined) && (missing1 = "sampleFacts")){validate139.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs7 = errors;for(const key2 in data1){if(!(key2 === "sampleFacts")){validate139.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs7 === errors){if(data1.sampleFacts !== undefined){let data2 = data1.sampleFacts;const _errs8 = errors;if(errors === _errs8){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing2;if(((((((((((((((((((((((data2.hostname === undefined) && (missing2 = "hostname")) || ((data2.fqdn === undefined) && (missing2 = "fqdn"))) || ((data2.domain === undefined) && (missing2 = "domain"))) || ((data2.distribution === undefined) && (missing2 = "distribution"))) || ((data2.distribution_version === undefined) && (missing2 = "distribution_version"))) || ((data2.distribution_major_version === undefined) && (missing2 = "distribution_major_version"))) || ((data2.os_family === undefined) && (missing2 = "os_family"))) || ((data2.kernel === undefined) && (missing2 = "kernel"))) || ((data2.architecture === undefined) && (missing2 = "architecture"))) || ((data2.python_version === undefined) && (missing2 = "python_version"))) || ((data2.processor_count === undefined) && (missing2 = "processor_count"))) || ((data2.processor_vcpus === undefined) && (missing2 = "processor_vcpus"))) || ((data2.memtotal_mb === undefined) && (missing2 = "memtotal_mb"))) || ((data2.memfree_mb === undefined) && (missing2 = "memfree_mb"))) || ((data2.default_ipv4 === undefined) && (missing2 = "default_ipv4"))) || ((data2.all_ipv4_addresses === undefined) && (missing2 = "all_ipv4_addresses"))) || ((data2.interfaces === undefined) && (missing2 = "interfaces"))) || ((data2.dns === undefined) && (missing2 = "dns"))) || ((data2.devices === undefined) && (missing2 = "devices"))) || ((data2.selinux === undefined) && (missing2 = "selinux"))) || ((data2.virtualization_role === undefined) && (missing2 = "virtualization_role"))) || ((data2.ansible_local === undefined) && (missing2 = "ansible_local"))){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts",schemaPath:"#/properties/data/properties/sampleFacts/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs10 = errors;for(const key3 in data2){if(!(func1.call(schema207.properties.data.properties.sampleFacts.properties, key3))){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts",schemaPath:"#/properties/data/properties/sampleFacts/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs10 === errors){if(data2.hostname !== undefined){let data3 = data2.hostname;const _errs11 = errors;if(errors === _errs11){if(typeof data3 === "string"){if(func2(data3) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/hostname",schemaPath:"#/properties/data/properties/sampleFacts/properties/hostname/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/hostname",schemaPath:"#/properties/data/properties/sampleFacts/properties/hostname/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs11 === errors;}else {var valid2 = true;}if(valid2){if(data2.fqdn !== undefined){let data4 = data2.fqdn;const _errs13 = errors;if(errors === _errs13){if(typeof data4 === "string"){if(func2(data4) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/fqdn",schemaPath:"#/properties/data/properties/sampleFacts/properties/fqdn/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/fqdn",schemaPath:"#/properties/data/properties/sampleFacts/properties/fqdn/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs13 === errors;}else {var valid2 = true;}if(valid2){if(data2.domain !== undefined){let data5 = data2.domain;const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/domain",schemaPath:"#/properties/data/properties/sampleFacts/properties/domain/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/domain",schemaPath:"#/properties/data/properties/sampleFacts/properties/domain/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs15 === errors;}else {var valid2 = true;}if(valid2){if(data2.distribution !== undefined){let data6 = data2.distribution;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/distribution",schemaPath:"#/properties/data/properties/sampleFacts/properties/distribution/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/distribution",schemaPath:"#/properties/data/properties/sampleFacts/properties/distribution/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}if(valid2){if(data2.distribution_version !== undefined){let data7 = data2.distribution_version;const _errs19 = errors;if(errors === _errs19){if(typeof data7 === "string"){if(func2(data7) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/distribution_version",schemaPath:"#/properties/data/properties/sampleFacts/properties/distribution_version/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/distribution_version",schemaPath:"#/properties/data/properties/sampleFacts/properties/distribution_version/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs19 === errors;}else {var valid2 = true;}if(valid2){if(data2.distribution_major_version !== undefined){let data8 = data2.distribution_major_version;const _errs21 = errors;if(errors === _errs21){if(typeof data8 === "string"){if(func2(data8) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/distribution_major_version",schemaPath:"#/properties/data/properties/sampleFacts/properties/distribution_major_version/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/distribution_major_version",schemaPath:"#/properties/data/properties/sampleFacts/properties/distribution_major_version/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs21 === errors;}else {var valid2 = true;}if(valid2){if(data2.os_family !== undefined){let data9 = data2.os_family;const _errs23 = errors;if(errors === _errs23){if(typeof data9 === "string"){if(func2(data9) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/os_family",schemaPath:"#/properties/data/properties/sampleFacts/properties/os_family/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/os_family",schemaPath:"#/properties/data/properties/sampleFacts/properties/os_family/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs23 === errors;}else {var valid2 = true;}if(valid2){if(data2.kernel !== undefined){let data10 = data2.kernel;const _errs25 = errors;if(errors === _errs25){if(typeof data10 === "string"){if(func2(data10) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/kernel",schemaPath:"#/properties/data/properties/sampleFacts/properties/kernel/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/kernel",schemaPath:"#/properties/data/properties/sampleFacts/properties/kernel/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs25 === errors;}else {var valid2 = true;}if(valid2){if(data2.architecture !== undefined){let data11 = data2.architecture;const _errs27 = errors;if(errors === _errs27){if(typeof data11 === "string"){if(func2(data11) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/architecture",schemaPath:"#/properties/data/properties/sampleFacts/properties/architecture/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/architecture",schemaPath:"#/properties/data/properties/sampleFacts/properties/architecture/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs27 === errors;}else {var valid2 = true;}if(valid2){if(data2.python_version !== undefined){let data12 = data2.python_version;const _errs29 = errors;if(errors === _errs29){if(typeof data12 === "string"){if(func2(data12) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/python_version",schemaPath:"#/properties/data/properties/sampleFacts/properties/python_version/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/python_version",schemaPath:"#/properties/data/properties/sampleFacts/properties/python_version/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs29 === errors;}else {var valid2 = true;}if(valid2){if(data2.processor_count !== undefined){let data13 = data2.processor_count;const _errs31 = errors;if(!(((typeof data13 == "number") && (!(data13 % 1) && !isNaN(data13))) && (isFinite(data13)))){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/processor_count",schemaPath:"#/properties/data/properties/sampleFacts/properties/processor_count/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid2 = _errs31 === errors;}else {var valid2 = true;}if(valid2){if(data2.processor_vcpus !== undefined){let data14 = data2.processor_vcpus;const _errs33 = errors;if(!(((typeof data14 == "number") && (!(data14 % 1) && !isNaN(data14))) && (isFinite(data14)))){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/processor_vcpus",schemaPath:"#/properties/data/properties/sampleFacts/properties/processor_vcpus/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid2 = _errs33 === errors;}else {var valid2 = true;}if(valid2){if(data2.memtotal_mb !== undefined){let data15 = data2.memtotal_mb;const _errs35 = errors;if(!(((typeof data15 == "number") && (!(data15 % 1) && !isNaN(data15))) && (isFinite(data15)))){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/memtotal_mb",schemaPath:"#/properties/data/properties/sampleFacts/properties/memtotal_mb/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid2 = _errs35 === errors;}else {var valid2 = true;}if(valid2){if(data2.memfree_mb !== undefined){let data16 = data2.memfree_mb;const _errs37 = errors;if(!(((typeof data16 == "number") && (!(data16 % 1) && !isNaN(data16))) && (isFinite(data16)))){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/memfree_mb",schemaPath:"#/properties/data/properties/sampleFacts/properties/memfree_mb/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid2 = _errs37 === errors;}else {var valid2 = true;}if(valid2){if(data2.default_ipv4 !== undefined){let data17 = data2.default_ipv4;const _errs39 = errors;if(errors === _errs39){if(data17 && typeof data17 == "object" && !Array.isArray(data17)){if(Object.keys(data17).length > 30){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/default_ipv4",schemaPath:"#/properties/data/properties/sampleFacts/properties/default_ipv4/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key4 in data17){let data18 = data17[key4];const _errs42 = errors;if(errors === _errs42){if(typeof data18 === "string"){if(func2(data18) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/default_ipv4/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/sampleFacts/properties/default_ipv4/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/default_ipv4/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/sampleFacts/properties/default_ipv4/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs42 === errors;if(!valid3){break;}}}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/default_ipv4",schemaPath:"#/properties/data/properties/sampleFacts/properties/default_ipv4/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs39 === errors;}else {var valid2 = true;}if(valid2){if(data2.all_ipv4_addresses !== undefined){let data19 = data2.all_ipv4_addresses;const _errs44 = errors;if(errors === _errs44){if(Array.isArray(data19)){if(data19.length > 20){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/all_ipv4_addresses",schemaPath:"#/properties/data/properties/sampleFacts/properties/all_ipv4_addresses/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid4 = true;const len0 = data19.length;for(let i0=0; i0 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/all_ipv4_addresses/" + i0,schemaPath:"#/properties/data/properties/sampleFacts/properties/all_ipv4_addresses/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/all_ipv4_addresses/" + i0,schemaPath:"#/properties/data/properties/sampleFacts/properties/all_ipv4_addresses/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs46 === errors;if(!valid4){break;}}}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/all_ipv4_addresses",schemaPath:"#/properties/data/properties/sampleFacts/properties/all_ipv4_addresses/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs44 === errors;}else {var valid2 = true;}if(valid2){if(data2.interfaces !== undefined){let data21 = data2.interfaces;const _errs48 = errors;if(errors === _errs48){if(Array.isArray(data21)){if(data21.length > 20){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/interfaces",schemaPath:"#/properties/data/properties/sampleFacts/properties/interfaces/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data21.length;for(let i1=0; i1 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/interfaces/" + i1,schemaPath:"#/properties/data/properties/sampleFacts/properties/interfaces/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/interfaces/" + i1,schemaPath:"#/properties/data/properties/sampleFacts/properties/interfaces/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs50 === errors;if(!valid5){break;}}}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/interfaces",schemaPath:"#/properties/data/properties/sampleFacts/properties/interfaces/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs48 === errors;}else {var valid2 = true;}if(valid2){if(data2.dns !== undefined){let data23 = data2.dns;const _errs52 = errors;if(errors === _errs52){if(data23 && typeof data23 == "object" && !Array.isArray(data23)){let missing3;if(((data23.nameservers === undefined) && (missing3 = "nameservers")) || ((data23.search === undefined) && (missing3 = "search"))){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/dns",schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs54 = errors;for(const key5 in data23){if(!((key5 === "nameservers") || (key5 === "search"))){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/dns",schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs54 === errors){if(data23.nameservers !== undefined){let data24 = data23.nameservers;const _errs55 = errors;if(errors === _errs55){if(Array.isArray(data24)){if(data24.length > 20){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/dns/nameservers",schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/properties/nameservers/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid7 = true;const len2 = data24.length;for(let i2=0; i2 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/dns/nameservers/" + i2,schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/properties/nameservers/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/dns/nameservers/" + i2,schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/properties/nameservers/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs57 === errors;if(!valid7){break;}}}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/dns/nameservers",schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/properties/nameservers/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid6 = _errs55 === errors;}else {var valid6 = true;}if(valid6){if(data23.search !== undefined){let data26 = data23.search;const _errs59 = errors;if(errors === _errs59){if(Array.isArray(data26)){if(data26.length > 20){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/dns/search",schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/properties/search/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid8 = true;const len3 = data26.length;for(let i3=0; i3 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/dns/search/" + i3,schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/properties/search/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/dns/search/" + i3,schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/properties/search/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid8 = _errs61 === errors;if(!valid8){break;}}}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/dns/search",schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/properties/search/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid6 = _errs59 === errors;}else {var valid6 = true;}}}}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/dns",schemaPath:"#/properties/data/properties/sampleFacts/properties/dns/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs52 === errors;}else {var valid2 = true;}if(valid2){if(data2.devices !== undefined){let data28 = data2.devices;const _errs63 = errors;if(errors === _errs63){if(data28 && typeof data28 == "object" && !Array.isArray(data28)){let missing4;if((data28.vda === undefined) && (missing4 = "vda")){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/required",keyword:"required",params:{missingProperty: missing4},message:"must have required property '"+missing4+"'"}];return false;}else {const _errs65 = errors;for(const key6 in data28){if(!(key6 === "vda")){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"}];return false;break;}}if(_errs65 === errors){if(data28.vda !== undefined){let data29 = data28.vda;const _errs66 = errors;if(errors === _errs66){if(data29 && typeof data29 == "object" && !Array.isArray(data29)){let missing5;if(((data29.size === undefined) && (missing5 = "size")) || ((data29.partitions === undefined) && (missing5 = "partitions"))){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/required",keyword:"required",params:{missingProperty: missing5},message:"must have required property '"+missing5+"'"}];return false;}else {const _errs68 = errors;for(const key7 in data29){if(!((key7 === "size") || (key7 === "partitions"))){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key7},message:"must NOT have additional properties"}];return false;break;}}if(_errs68 === errors){if(data29.size !== undefined){let data30 = data29.size;const _errs69 = errors;if(errors === _errs69){if(typeof data30 === "string"){if(func2(data30) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/size",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/size/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/size",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/size/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid10 = _errs69 === errors;}else {var valid10 = true;}if(valid10){if(data29.partitions !== undefined){let data31 = data29.partitions;const _errs71 = errors;if(errors === _errs71){if(data31 && typeof data31 == "object" && !Array.isArray(data31)){let missing6;if(((data31.vda1 === undefined) && (missing6 = "vda1")) || ((data31.vda4 === undefined) && (missing6 = "vda4"))){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/required",keyword:"required",params:{missingProperty: missing6},message:"must have required property '"+missing6+"'"}];return false;}else {const _errs73 = errors;for(const key8 in data31){if(!((key8 === "vda1") || (key8 === "vda4"))){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key8},message:"must NOT have additional properties"}];return false;break;}}if(_errs73 === errors){if(data31.vda1 !== undefined){let data32 = data31.vda1;const _errs74 = errors;if(errors === _errs74){if(data32 && typeof data32 == "object" && !Array.isArray(data32)){let missing7;if((data32.size === undefined) && (missing7 = "size")){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda1",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda1/required",keyword:"required",params:{missingProperty: missing7},message:"must have required property '"+missing7+"'"}];return false;}else {const _errs76 = errors;for(const key9 in data32){if(!(key9 === "size")){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda1",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda1/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key9},message:"must NOT have additional properties"}];return false;break;}}if(_errs76 === errors){if(data32.size !== undefined){let data33 = data32.size;const _errs77 = errors;if(errors === _errs77){if(typeof data33 === "string"){if(func2(data33) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda1/size",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda1/properties/size/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda1/size",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda1/properties/size/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda1",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda1/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid11 = _errs74 === errors;}else {var valid11 = true;}if(valid11){if(data31.vda4 !== undefined){let data34 = data31.vda4;const _errs79 = errors;if(errors === _errs79){if(data34 && typeof data34 == "object" && !Array.isArray(data34)){let missing8;if((data34.size === undefined) && (missing8 = "size")){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda4",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda4/required",keyword:"required",params:{missingProperty: missing8},message:"must have required property '"+missing8+"'"}];return false;}else {const _errs81 = errors;for(const key10 in data34){if(!(key10 === "size")){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda4",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda4/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key10},message:"must NOT have additional properties"}];return false;break;}}if(_errs81 === errors){if(data34.size !== undefined){let data35 = data34.size;const _errs82 = errors;if(errors === _errs82){if(typeof data35 === "string"){if(func2(data35) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda4/size",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda4/properties/size/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda4/size",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda4/properties/size/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions/vda4",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/properties/vda4/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid11 = _errs79 === errors;}else {var valid11 = true;}}}}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda/partitions",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/properties/partitions/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs71 === errors;}else {var valid10 = true;}}}}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices/vda",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/properties/vda/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}}}}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/devices",schemaPath:"#/properties/data/properties/sampleFacts/properties/devices/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs63 === errors;}else {var valid2 = true;}if(valid2){if(data2.selinux !== undefined){let data36 = data2.selinux;const _errs84 = errors;if(errors === _errs84){if(data36 && typeof data36 == "object" && !Array.isArray(data36)){let missing9;if(((data36.status === undefined) && (missing9 = "status")) || ((data36.mode === undefined) && (missing9 = "mode"))){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/selinux",schemaPath:"#/properties/data/properties/sampleFacts/properties/selinux/required",keyword:"required",params:{missingProperty: missing9},message:"must have required property '"+missing9+"'"}];return false;}else {const _errs86 = errors;for(const key11 in data36){if(!((key11 === "status") || (key11 === "mode"))){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/selinux",schemaPath:"#/properties/data/properties/sampleFacts/properties/selinux/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key11},message:"must NOT have additional properties"}];return false;break;}}if(_errs86 === errors){if(data36.status !== undefined){let data37 = data36.status;const _errs87 = errors;if(errors === _errs87){if(typeof data37 === "string"){if(func2(data37) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/selinux/status",schemaPath:"#/properties/data/properties/sampleFacts/properties/selinux/properties/status/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/selinux/status",schemaPath:"#/properties/data/properties/sampleFacts/properties/selinux/properties/status/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid14 = _errs87 === errors;}else {var valid14 = true;}if(valid14){if(data36.mode !== undefined){let data38 = data36.mode;const _errs89 = errors;if(errors === _errs89){if(typeof data38 === "string"){if(func2(data38) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/selinux/mode",schemaPath:"#/properties/data/properties/sampleFacts/properties/selinux/properties/mode/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/selinux/mode",schemaPath:"#/properties/data/properties/sampleFacts/properties/selinux/properties/mode/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid14 = _errs89 === errors;}else {var valid14 = true;}}}}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/selinux",schemaPath:"#/properties/data/properties/sampleFacts/properties/selinux/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs84 === errors;}else {var valid2 = true;}if(valid2){if(data2.virtualization_role !== undefined){let data39 = data2.virtualization_role;const _errs91 = errors;if(errors === _errs91){if(typeof data39 === "string"){if(func2(data39) > 4000){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/virtualization_role",schemaPath:"#/properties/data/properties/sampleFacts/properties/virtualization_role/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/virtualization_role",schemaPath:"#/properties/data/properties/sampleFacts/properties/virtualization_role/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs91 === errors;}else {var valid2 = true;}if(valid2){if(data2.ansible_local !== undefined){let data40 = data2.ansible_local;const _errs93 = errors;if(errors === _errs93){if(data40 && typeof data40 == "object" && !Array.isArray(data40)){for(const key12 in data40){validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/ansible_local",schemaPath:"#/properties/data/properties/sampleFacts/properties/ansible_local/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key12},message:"must NOT have additional properties"}];return false;break;}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts/ansible_local",schemaPath:"#/properties/data/properties/sampleFacts/properties/ansible_local/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs93 === errors;}else {var valid2 = true;}}}}}}}}}}}}}}}}}}}}}}}}}else {validate139.errors = [{instancePath:instancePath+"/data/sampleFacts",schemaPath:"#/properties/data/properties/sampleFacts/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}}}}}else {validate139.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data41 = data.dependencies;const _errs96 = errors;if(errors === _errs96){if(data41 && typeof data41 == "object" && !Array.isArray(data41)){for(const key13 in data41){const _errs98 = errors;if(typeof key13 === "string"){if(!pattern90.test(key13)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key13};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid15 = _errs98 === errors;if(!valid15){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key13},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate139.errors = vErrors;return false;break;}}if(valid15){for(const key14 in data41){let data42 = data41[key14];const _errs100 = errors;if(errors === _errs100){if(data42 && typeof data42 == "object" && !Array.isArray(data42)){const _errs102 = errors;for(const key15 in data42){if(!((key15 === "text") || (key15 === "data"))){validate139.errors = [{instancePath:instancePath+"/dependencies/" + key14.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key15},message:"must NOT have additional properties"}];return false;break;}}if(_errs102 === errors){if(data42.text !== undefined){let data43 = data42.text;const _errs103 = errors;if(errors === _errs103){if(data43 && typeof data43 == "object" && !Array.isArray(data43)){for(const key16 in data43){let data44 = data43[key16];const _errs106 = errors;if(errors === _errs106){if(typeof data44 === "string"){if(func2(data44) > 4000){validate139.errors = [{instancePath:instancePath+"/dependencies/" + key14.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key16.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate139.errors = [{instancePath:instancePath+"/dependencies/" + key14.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key16.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid18 = _errs106 === errors;if(!valid18){break;}}}else {validate139.errors = [{instancePath:instancePath+"/dependencies/" + key14.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid17 = _errs103 === errors;}else {var valid17 = true;}if(valid17){if(data42.data !== undefined){let data45 = data42.data;const _errs108 = errors;if(!(data45 && typeof data45 == "object" && !Array.isArray(data45))){validate139.errors = [{instancePath:instancePath+"/dependencies/" + key14.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid17 = _errs108 === errors;}else {var valid17 = true;}}}}else {validate139.errors = [{instancePath:instancePath+"/dependencies/" + key14.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid16 = _errs100 === errors;if(!valid16){break;}}}}else {validate139.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs96 === errors;}else {var valid0 = true;}}}}}}else {validate139.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate139.errors = vErrors;return errors === 0;}validate139.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_fetch_layout = validate140;const schema208 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/fetch-layout.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":51,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["hosts"],"properties":{"hosts":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate140(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/fetch-layout.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate140.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate140.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate140.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 51){validate140.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 51},message:"must NOT have more than 51 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate140.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate140.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate140.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.hosts === undefined) && (missing1 = "hosts")){validate140.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "hosts")){validate140.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.hosts !== undefined){let data3 = data2.hosts;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate140.errors = [{instancePath:instancePath+"/data/hosts",schemaPath:"#/properties/data/properties/hosts/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate140.errors = [{instancePath:instancePath+"/data/hosts/" + i0,schemaPath:"#/properties/data/properties/hosts/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate140.errors = [{instancePath:instancePath+"/data/hosts/" + i0,schemaPath:"#/properties/data/properties/hosts/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate140.errors = [{instancePath:instancePath+"/data/hosts",schemaPath:"#/properties/data/properties/hosts/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate140.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data5 = data.dependencies;const _errs14 = errors;if(errors === _errs14){if(data5 && typeof data5 == "object" && !Array.isArray(data5)){for(const key3 in data5){const _errs16 = errors;if(typeof key3 === "string"){if(!pattern90.test(key3)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key3};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid4 = _errs16 === errors;if(!valid4){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key3},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate140.errors = vErrors;return false;break;}}if(valid4){for(const key4 in data5){let data6 = data5[key4];const _errs18 = errors;if(errors === _errs18){if(data6 && typeof data6 == "object" && !Array.isArray(data6)){const _errs20 = errors;for(const key5 in data6){if(!((key5 === "text") || (key5 === "data"))){validate140.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs20 === errors){if(data6.text !== undefined){let data7 = data6.text;const _errs21 = errors;if(errors === _errs21){if(data7 && typeof data7 == "object" && !Array.isArray(data7)){for(const key6 in data7){let data8 = data7[key6];const _errs24 = errors;if(errors === _errs24){if(typeof data8 === "string"){if(func2(data8) > 4000){validate140.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate140.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs24 === errors;if(!valid7){break;}}}else {validate140.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid6 = _errs21 === errors;}else {var valid6 = true;}if(valid6){if(data6.data !== undefined){let data9 = data6.data;const _errs26 = errors;if(!(data9 && typeof data9 == "object" && !Array.isArray(data9))){validate140.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid6 = _errs26 === errors;}else {var valid6 = true;}}}}else {validate140.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs18 === errors;if(!valid5){break;}}}}else {validate140.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs14 === errors;}else {var valid0 = true;}}}}}}else {validate140.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate140.errors = vErrors;return errors === 0;}validate140.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_file_edit_simulator = validate141;const schema209 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/file-edit-simulator.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":36,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["start","begin","end","modes","initialSelection1"],"properties":{"start":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"begin":{"type":"string","maxLength":4000},"end":{"type":"string","maxLength":4000},"modes":{"type":"object","additionalProperties":false,"required":["append","replace","block"],"properties":{"append":{"type":"object","additionalProperties":false,"required":["label","hint","line","regexp"],"properties":{"label":{"type":"string","maxLength":4000},"hint":{"type":"string","maxLength":4000},"line":{"type":"string","maxLength":4000},"regexp":{"type":"null"}}},"replace":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"block":{"type":"object","additionalProperties":false,"required":["label","hint","line","regexp"],"properties":{"label":{"type":"string","maxLength":4000},"hint":{"type":"string","maxLength":4000},"line":{"type":"string","maxLength":4000},"regexp":{"type":"null"}}}}},"initialSelection1":{"type":"string","maxLength":4000}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate141(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/file-edit-simulator.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate141.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate141.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate141.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 36){validate141.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 36},message:"must NOT have more than 36 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate141.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate141.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((((((data2.start === undefined) && (missing1 = "start")) || ((data2.begin === undefined) && (missing1 = "begin"))) || ((data2.end === undefined) && (missing1 = "end"))) || ((data2.modes === undefined) && (missing1 = "modes"))) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate141.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(((((key2 === "start") || (key2 === "begin")) || (key2 === "end")) || (key2 === "modes")) || (key2 === "initialSelection1"))){validate141.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.start !== undefined){let data3 = data2.start;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate141.errors = [{instancePath:instancePath+"/data/start",schemaPath:"#/properties/data/properties/start/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate141.errors = [{instancePath:instancePath+"/data/start/" + i0,schemaPath:"#/properties/data/properties/start/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/data/start/" + i0,schemaPath:"#/properties/data/properties/start/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate141.errors = [{instancePath:instancePath+"/data/start",schemaPath:"#/properties/data/properties/start/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.begin !== undefined){let data5 = data2.begin;const _errs14 = errors;if(errors === _errs14){if(typeof data5 === "string"){if(func2(data5) > 4000){validate141.errors = [{instancePath:instancePath+"/data/begin",schemaPath:"#/properties/data/properties/begin/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/data/begin",schemaPath:"#/properties/data/properties/begin/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs14 === errors;}else {var valid2 = true;}if(valid2){if(data2.end !== undefined){let data6 = data2.end;const _errs16 = errors;if(errors === _errs16){if(typeof data6 === "string"){if(func2(data6) > 4000){validate141.errors = [{instancePath:instancePath+"/data/end",schemaPath:"#/properties/data/properties/end/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/data/end",schemaPath:"#/properties/data/properties/end/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs16 === errors;}else {var valid2 = true;}if(valid2){if(data2.modes !== undefined){let data7 = data2.modes;const _errs18 = errors;if(errors === _errs18){if(data7 && typeof data7 == "object" && !Array.isArray(data7)){let missing2;if((((data7.append === undefined) && (missing2 = "append")) || ((data7.replace === undefined) && (missing2 = "replace"))) || ((data7.block === undefined) && (missing2 = "block"))){validate141.errors = [{instancePath:instancePath+"/data/modes",schemaPath:"#/properties/data/properties/modes/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs20 = errors;for(const key3 in data7){if(!(((key3 === "append") || (key3 === "replace")) || (key3 === "block"))){validate141.errors = [{instancePath:instancePath+"/data/modes",schemaPath:"#/properties/data/properties/modes/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs20 === errors){if(data7.append !== undefined){let data8 = data7.append;const _errs21 = errors;if(errors === _errs21){if(data8 && typeof data8 == "object" && !Array.isArray(data8)){let missing3;if(((((data8.label === undefined) && (missing3 = "label")) || ((data8.hint === undefined) && (missing3 = "hint"))) || ((data8.line === undefined) && (missing3 = "line"))) || ((data8.regexp === undefined) && (missing3 = "regexp"))){validate141.errors = [{instancePath:instancePath+"/data/modes/append",schemaPath:"#/properties/data/properties/modes/properties/append/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs23 = errors;for(const key4 in data8){if(!((((key4 === "label") || (key4 === "hint")) || (key4 === "line")) || (key4 === "regexp"))){validate141.errors = [{instancePath:instancePath+"/data/modes/append",schemaPath:"#/properties/data/properties/modes/properties/append/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs23 === errors){if(data8.label !== undefined){let data9 = data8.label;const _errs24 = errors;if(errors === _errs24){if(typeof data9 === "string"){if(func2(data9) > 4000){validate141.errors = [{instancePath:instancePath+"/data/modes/append/label",schemaPath:"#/properties/data/properties/modes/properties/append/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/data/modes/append/label",schemaPath:"#/properties/data/properties/modes/properties/append/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs24 === errors;}else {var valid5 = true;}if(valid5){if(data8.hint !== undefined){let data10 = data8.hint;const _errs26 = errors;if(errors === _errs26){if(typeof data10 === "string"){if(func2(data10) > 4000){validate141.errors = [{instancePath:instancePath+"/data/modes/append/hint",schemaPath:"#/properties/data/properties/modes/properties/append/properties/hint/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/data/modes/append/hint",schemaPath:"#/properties/data/properties/modes/properties/append/properties/hint/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs26 === errors;}else {var valid5 = true;}if(valid5){if(data8.line !== undefined){let data11 = data8.line;const _errs28 = errors;if(errors === _errs28){if(typeof data11 === "string"){if(func2(data11) > 4000){validate141.errors = [{instancePath:instancePath+"/data/modes/append/line",schemaPath:"#/properties/data/properties/modes/properties/append/properties/line/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/data/modes/append/line",schemaPath:"#/properties/data/properties/modes/properties/append/properties/line/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs28 === errors;}else {var valid5 = true;}if(valid5){if(data8.regexp !== undefined){const _errs30 = errors;if(data8.regexp !== null){validate141.errors = [{instancePath:instancePath+"/data/modes/append/regexp",schemaPath:"#/properties/data/properties/modes/properties/append/properties/regexp/type",keyword:"type",params:{type: "null"},message:"must be null"}];return false;}var valid5 = _errs30 === errors;}else {var valid5 = true;}}}}}}}else {validate141.errors = [{instancePath:instancePath+"/data/modes/append",schemaPath:"#/properties/data/properties/modes/properties/append/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid4 = _errs21 === errors;}else {var valid4 = true;}if(valid4){if(data7.replace !== undefined){let data13 = data7.replace;const _errs32 = errors;if(errors === _errs32){if(data13 && typeof data13 == "object" && !Array.isArray(data13)){if(Object.keys(data13).length > 30){validate141.errors = [{instancePath:instancePath+"/data/modes/replace",schemaPath:"#/properties/data/properties/modes/properties/replace/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key5 in data13){let data14 = data13[key5];const _errs35 = errors;if(errors === _errs35){if(typeof data14 === "string"){if(func2(data14) > 4000){validate141.errors = [{instancePath:instancePath+"/data/modes/replace/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/modes/properties/replace/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/data/modes/replace/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/modes/properties/replace/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs35 === errors;if(!valid6){break;}}}}else {validate141.errors = [{instancePath:instancePath+"/data/modes/replace",schemaPath:"#/properties/data/properties/modes/properties/replace/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid4 = _errs32 === errors;}else {var valid4 = true;}if(valid4){if(data7.block !== undefined){let data15 = data7.block;const _errs37 = errors;if(errors === _errs37){if(data15 && typeof data15 == "object" && !Array.isArray(data15)){let missing4;if(((((data15.label === undefined) && (missing4 = "label")) || ((data15.hint === undefined) && (missing4 = "hint"))) || ((data15.line === undefined) && (missing4 = "line"))) || ((data15.regexp === undefined) && (missing4 = "regexp"))){validate141.errors = [{instancePath:instancePath+"/data/modes/block",schemaPath:"#/properties/data/properties/modes/properties/block/required",keyword:"required",params:{missingProperty: missing4},message:"must have required property '"+missing4+"'"}];return false;}else {const _errs39 = errors;for(const key6 in data15){if(!((((key6 === "label") || (key6 === "hint")) || (key6 === "line")) || (key6 === "regexp"))){validate141.errors = [{instancePath:instancePath+"/data/modes/block",schemaPath:"#/properties/data/properties/modes/properties/block/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"}];return false;break;}}if(_errs39 === errors){if(data15.label !== undefined){let data16 = data15.label;const _errs40 = errors;if(errors === _errs40){if(typeof data16 === "string"){if(func2(data16) > 4000){validate141.errors = [{instancePath:instancePath+"/data/modes/block/label",schemaPath:"#/properties/data/properties/modes/properties/block/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/data/modes/block/label",schemaPath:"#/properties/data/properties/modes/properties/block/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs40 === errors;}else {var valid7 = true;}if(valid7){if(data15.hint !== undefined){let data17 = data15.hint;const _errs42 = errors;if(errors === _errs42){if(typeof data17 === "string"){if(func2(data17) > 4000){validate141.errors = [{instancePath:instancePath+"/data/modes/block/hint",schemaPath:"#/properties/data/properties/modes/properties/block/properties/hint/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/data/modes/block/hint",schemaPath:"#/properties/data/properties/modes/properties/block/properties/hint/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs42 === errors;}else {var valid7 = true;}if(valid7){if(data15.line !== undefined){let data18 = data15.line;const _errs44 = errors;if(errors === _errs44){if(typeof data18 === "string"){if(func2(data18) > 4000){validate141.errors = [{instancePath:instancePath+"/data/modes/block/line",schemaPath:"#/properties/data/properties/modes/properties/block/properties/line/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/data/modes/block/line",schemaPath:"#/properties/data/properties/modes/properties/block/properties/line/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs44 === errors;}else {var valid7 = true;}if(valid7){if(data15.regexp !== undefined){const _errs46 = errors;if(data15.regexp !== null){validate141.errors = [{instancePath:instancePath+"/data/modes/block/regexp",schemaPath:"#/properties/data/properties/modes/properties/block/properties/regexp/type",keyword:"type",params:{type: "null"},message:"must be null"}];return false;}var valid7 = _errs46 === errors;}else {var valid7 = true;}}}}}}}else {validate141.errors = [{instancePath:instancePath+"/data/modes/block",schemaPath:"#/properties/data/properties/modes/properties/block/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid4 = _errs37 === errors;}else {var valid4 = true;}}}}}}else {validate141.errors = [{instancePath:instancePath+"/data/modes",schemaPath:"#/properties/data/properties/modes/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs18 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data20 = data2.initialSelection1;const _errs48 = errors;if(errors === _errs48){if(typeof data20 === "string"){if(func2(data20) > 4000){validate141.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs48 === errors;}else {var valid2 = true;}}}}}}}}else {validate141.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data21 = data.dependencies;const _errs50 = errors;if(errors === _errs50){if(data21 && typeof data21 == "object" && !Array.isArray(data21)){for(const key7 in data21){const _errs52 = errors;if(typeof key7 === "string"){if(!pattern90.test(key7)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key7};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid8 = _errs52 === errors;if(!valid8){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key7},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate141.errors = vErrors;return false;break;}}if(valid8){for(const key8 in data21){let data22 = data21[key8];const _errs54 = errors;if(errors === _errs54){if(data22 && typeof data22 == "object" && !Array.isArray(data22)){const _errs56 = errors;for(const key9 in data22){if(!((key9 === "text") || (key9 === "data"))){validate141.errors = [{instancePath:instancePath+"/dependencies/" + key8.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key9},message:"must NOT have additional properties"}];return false;break;}}if(_errs56 === errors){if(data22.text !== undefined){let data23 = data22.text;const _errs57 = errors;if(errors === _errs57){if(data23 && typeof data23 == "object" && !Array.isArray(data23)){for(const key10 in data23){let data24 = data23[key10];const _errs60 = errors;if(errors === _errs60){if(typeof data24 === "string"){if(func2(data24) > 4000){validate141.errors = [{instancePath:instancePath+"/dependencies/" + key8.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key10.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate141.errors = [{instancePath:instancePath+"/dependencies/" + key8.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key10.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid11 = _errs60 === errors;if(!valid11){break;}}}else {validate141.errors = [{instancePath:instancePath+"/dependencies/" + key8.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs57 === errors;}else {var valid10 = true;}if(valid10){if(data22.data !== undefined){let data25 = data22.data;const _errs62 = errors;if(!(data25 && typeof data25 == "object" && !Array.isArray(data25))){validate141.errors = [{instancePath:instancePath+"/dependencies/" + key8.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid10 = _errs62 === errors;}else {var valid10 = true;}}}}else {validate141.errors = [{instancePath:instancePath+"/dependencies/" + key8.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid9 = _errs54 === errors;if(!valid9){break;}}}}else {validate141.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs50 === errors;}else {var valid0 = true;}}}}}}else {validate141.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate141.errors = vErrors;return errors === 0;}validate141.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_file_module_chooser = validate142;const schema210 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/file-module-chooser.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["goals","initialSelection1"],"properties":{"goals":{"type":"array","maxItems":24,"items":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}}},"initialSelection1":{"type":"string","maxLength":4000}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate142(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/file-module-chooser.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate142.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate142.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate142.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate142.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate142.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate142.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate142.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.goals === undefined) && (missing1 = "goals")) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate142.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "goals") || (key2 === "initialSelection1"))){validate142.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.goals !== undefined){let data3 = data2.goals;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 24){validate142.errors = [{instancePath:instancePath+"/data/goals",schemaPath:"#/properties/data/properties/goals/maxItems",keyword:"maxItems",params:{limit: 24},message:"must NOT have more than 24 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 30){validate142.errors = [{instancePath:instancePath+"/data/goals/" + i0,schemaPath:"#/properties/data/properties/goals/items/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data4){let data5 = data4[key3];const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate142.errors = [{instancePath:instancePath+"/data/goals/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/goals/items/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate142.errors = [{instancePath:instancePath+"/data/goals/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/goals/items/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;if(!valid4){break;}}}}else {validate142.errors = [{instancePath:instancePath+"/data/goals/" + i0,schemaPath:"#/properties/data/properties/goals/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate142.errors = [{instancePath:instancePath+"/data/goals",schemaPath:"#/properties/data/properties/goals/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data6 = data2.initialSelection1;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate142.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate142.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}}}}}else {validate142.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data7 = data.dependencies;const _errs19 = errors;if(errors === _errs19){if(data7 && typeof data7 == "object" && !Array.isArray(data7)){for(const key4 in data7){const _errs21 = errors;if(typeof key4 === "string"){if(!pattern90.test(key4)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key4};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid5 = _errs21 === errors;if(!valid5){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key4},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate142.errors = vErrors;return false;break;}}if(valid5){for(const key5 in data7){let data8 = data7[key5];const _errs23 = errors;if(errors === _errs23){if(data8 && typeof data8 == "object" && !Array.isArray(data8)){const _errs25 = errors;for(const key6 in data8){if(!((key6 === "text") || (key6 === "data"))){validate142.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"}];return false;break;}}if(_errs25 === errors){if(data8.text !== undefined){let data9 = data8.text;const _errs26 = errors;if(errors === _errs26){if(data9 && typeof data9 == "object" && !Array.isArray(data9)){for(const key7 in data9){let data10 = data9[key7];const _errs29 = errors;if(errors === _errs29){if(typeof data10 === "string"){if(func2(data10) > 4000){validate142.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate142.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid8 = _errs29 === errors;if(!valid8){break;}}}else {validate142.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid7 = _errs26 === errors;}else {var valid7 = true;}if(valid7){if(data8.data !== undefined){let data11 = data8.data;const _errs31 = errors;if(!(data11 && typeof data11 == "object" && !Array.isArray(data11))){validate142.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid7 = _errs31 === errors;}else {var valid7 = true;}}}}else {validate142.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid6 = _errs23 === errors;if(!valid6){break;}}}}else {validate142.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs19 === errors;}else {var valid0 = true;}}}}}}else {validate142.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate142.errors = vErrors;return errors === 0;}validate142.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_fqcn_explorer = validate143;const schema211 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/fqcn-explorer.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":51,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["samples","paths"],"properties":{"samples":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["name","kind"],"properties":{"name":{"type":"string","maxLength":4000},"kind":{"type":"string","maxLength":4000},"builtin":{"type":"boolean"}}}},"paths":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}}};function validate143(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/fqcn-explorer.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate143.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate143.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate143.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 51){validate143.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 51},message:"must NOT have more than 51 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate143.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate143.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate143.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.samples === undefined) && (missing1 = "samples")) || ((data2.paths === undefined) && (missing1 = "paths"))){validate143.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "samples") || (key2 === "paths"))){validate143.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.samples !== undefined){let data3 = data2.samples;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate143.errors = [{instancePath:instancePath+"/data/samples",schemaPath:"#/properties/data/properties/samples/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate143.errors = [{instancePath:instancePath+"/data/samples/" + i0+"/name",schemaPath:"#/properties/data/properties/samples/items/properties/name/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate143.errors = [{instancePath:instancePath+"/data/samples/" + i0+"/name",schemaPath:"#/properties/data/properties/samples/items/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.kind !== undefined){let data6 = data4.kind;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate143.errors = [{instancePath:instancePath+"/data/samples/" + i0+"/kind",schemaPath:"#/properties/data/properties/samples/items/properties/kind/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate143.errors = [{instancePath:instancePath+"/data/samples/" + i0+"/kind",schemaPath:"#/properties/data/properties/samples/items/properties/kind/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.builtin !== undefined){const _errs19 = errors;if(typeof data4.builtin !== "boolean"){validate143.errors = [{instancePath:instancePath+"/data/samples/" + i0+"/builtin",schemaPath:"#/properties/data/properties/samples/items/properties/builtin/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs19 === errors;}else {var valid4 = true;}}}}}}else {validate143.errors = [{instancePath:instancePath+"/data/samples/" + i0,schemaPath:"#/properties/data/properties/samples/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate143.errors = [{instancePath:instancePath+"/data/samples",schemaPath:"#/properties/data/properties/samples/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.paths !== undefined){let data8 = data2.paths;const _errs21 = errors;if(errors === _errs21){if(Array.isArray(data8)){if(data8.length > 20){validate143.errors = [{instancePath:instancePath+"/data/paths",schemaPath:"#/properties/data/properties/paths/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data8.length;for(let i1=0; i1 4000){validate143.errors = [{instancePath:instancePath+"/data/paths/" + i1,schemaPath:"#/properties/data/properties/paths/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate143.errors = [{instancePath:instancePath+"/data/paths/" + i1,schemaPath:"#/properties/data/properties/paths/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs23 === errors;if(!valid5){break;}}}}else {validate143.errors = [{instancePath:instancePath+"/data/paths",schemaPath:"#/properties/data/properties/paths/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs21 === errors;}else {var valid2 = true;}}}}}else {validate143.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate143.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate143.errors = vErrors;return errors === 0;}validate143.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_glob_tester = validate144;const schema212 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/glob-tester.schema.json","type":"object","additionalProperties":false,"required":["text","data","props"],"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false},"props":{"type":"object","additionalProperties":false,"required":["files"],"properties":{"title":{"type":"string","maxLength":200},"command":{"type":"string","maxLength":60},"initial":{"type":"string","maxLength":200},"files":{"type":"array","minItems":1,"maxItems":80,"items":{"type":"string","minLength":1,"maxLength":120,"pattern":"^[^/]+$"}},"presets":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["pattern"],"properties":{"pattern":{"type":"string","minLength":1,"maxLength":200},"note":{"type":"string","maxLength":600}}}}}}}};const pattern137 = new RegExp("^[^/]+$", "u");function validate144(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/glob-tester.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate144.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))) || ((data.props === undefined) && (missing0 = "props"))){validate144.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "props"))){validate144.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate144.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate144.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}else {validate144.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate144.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate144.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.props !== undefined){let data3 = data.props;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){let missing1;if((data3.files === undefined) && (missing1 = "files")){validate144.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs12 = errors;for(const key3 in data3){if(!(((((key3 === "title") || (key3 === "command")) || (key3 === "initial")) || (key3 === "files")) || (key3 === "presets"))){validate144.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs12 === errors){if(data3.title !== undefined){let data4 = data3.title;const _errs13 = errors;if(errors === _errs13){if(typeof data4 === "string"){if(func2(data4) > 200){validate144.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}}else {validate144.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs13 === errors;}else {var valid2 = true;}if(valid2){if(data3.command !== undefined){let data5 = data3.command;const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 60){validate144.errors = [{instancePath:instancePath+"/props/command",schemaPath:"#/properties/props/properties/command/maxLength",keyword:"maxLength",params:{limit: 60},message:"must NOT have more than 60 characters"}];return false;}}else {validate144.errors = [{instancePath:instancePath+"/props/command",schemaPath:"#/properties/props/properties/command/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs15 === errors;}else {var valid2 = true;}if(valid2){if(data3.initial !== undefined){let data6 = data3.initial;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 200){validate144.errors = [{instancePath:instancePath+"/props/initial",schemaPath:"#/properties/props/properties/initial/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}}else {validate144.errors = [{instancePath:instancePath+"/props/initial",schemaPath:"#/properties/props/properties/initial/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}if(valid2){if(data3.files !== undefined){let data7 = data3.files;const _errs19 = errors;if(errors === _errs19){if(Array.isArray(data7)){if(data7.length > 80){validate144.errors = [{instancePath:instancePath+"/props/files",schemaPath:"#/properties/props/properties/files/maxItems",keyword:"maxItems",params:{limit: 80},message:"must NOT have more than 80 items"}];return false;}else {if(data7.length < 1){validate144.errors = [{instancePath:instancePath+"/props/files",schemaPath:"#/properties/props/properties/files/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid3 = true;const len0 = data7.length;for(let i0=0; i0 120){validate144.errors = [{instancePath:instancePath+"/props/files/" + i0,schemaPath:"#/properties/props/properties/files/items/maxLength",keyword:"maxLength",params:{limit: 120},message:"must NOT have more than 120 characters"}];return false;}else {if(func2(data8) < 1){validate144.errors = [{instancePath:instancePath+"/props/files/" + i0,schemaPath:"#/properties/props/properties/files/items/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}else {if(!pattern137.test(data8)){validate144.errors = [{instancePath:instancePath+"/props/files/" + i0,schemaPath:"#/properties/props/properties/files/items/pattern",keyword:"pattern",params:{pattern: "^[^/]+$"},message:"must match pattern \""+"^[^/]+$"+"\""}];return false;}}}}else {validate144.errors = [{instancePath:instancePath+"/props/files/" + i0,schemaPath:"#/properties/props/properties/files/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs21 === errors;if(!valid3){break;}}}}}else {validate144.errors = [{instancePath:instancePath+"/props/files",schemaPath:"#/properties/props/properties/files/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs19 === errors;}else {var valid2 = true;}if(valid2){if(data3.presets !== undefined){let data9 = data3.presets;const _errs23 = errors;if(errors === _errs23){if(Array.isArray(data9)){if(data9.length > 20){validate144.errors = [{instancePath:instancePath+"/props/presets",schemaPath:"#/properties/props/properties/presets/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid4 = true;const len1 = data9.length;for(let i1=0; i1 200){validate144.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/pattern",schemaPath:"#/properties/props/properties/presets/items/properties/pattern/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}else {if(func2(data11) < 1){validate144.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/pattern",schemaPath:"#/properties/props/properties/presets/items/properties/pattern/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate144.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/pattern",schemaPath:"#/properties/props/properties/presets/items/properties/pattern/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs28 === errors;}else {var valid5 = true;}if(valid5){if(data10.note !== undefined){let data12 = data10.note;const _errs30 = errors;if(errors === _errs30){if(typeof data12 === "string"){if(func2(data12) > 600){validate144.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/note",schemaPath:"#/properties/props/properties/presets/items/properties/note/maxLength",keyword:"maxLength",params:{limit: 600},message:"must NOT have more than 600 characters"}];return false;}}else {validate144.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/note",schemaPath:"#/properties/props/properties/presets/items/properties/note/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs30 === errors;}else {var valid5 = true;}}}}}else {validate144.errors = [{instancePath:instancePath+"/props/presets/" + i1,schemaPath:"#/properties/props/properties/presets/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid4 = _errs25 === errors;if(!valid4){break;}}}}else {validate144.errors = [{instancePath:instancePath+"/props/presets",schemaPath:"#/properties/props/properties/presets/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs23 === errors;}else {var valid2 = true;}}}}}}}}else {validate144.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs10 === errors;}else {var valid0 = true;}}}}}}else {validate144.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate144.errors = vErrors;return errors === 0;}validate144.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_grep_tester = validate145;const schema213 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/grep-tester.schema.json","type":"object","additionalProperties":false,"required":["text","data","props"],"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false},"props":{"type":"object","additionalProperties":false,"required":["lines"],"properties":{"title":{"type":"string","maxLength":200},"file":{"type":"string","maxLength":120,"pattern":"^[^\\s]+$"},"lines":{"type":"array","minItems":1,"maxItems":60,"items":{"type":"string","maxLength":300}},"presets":{"type":"array","maxItems":24,"items":{"type":"object","additionalProperties":false,"required":["pattern"],"properties":{"pattern":{"type":"string","maxLength":200},"flags":{"type":"string","pattern":"^[ivEn]{0,4}$"},"note":{"type":"string","maxLength":600}}}}}}}};const pattern138 = new RegExp("^[^\\s]+$", "u");const pattern139 = new RegExp("^[ivEn]{0,4}$", "u");function validate145(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/grep-tester.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate145.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))) || ((data.props === undefined) && (missing0 = "props"))){validate145.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "props"))){validate145.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate145.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate145.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}else {validate145.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate145.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate145.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.props !== undefined){let data3 = data.props;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){let missing1;if((data3.lines === undefined) && (missing1 = "lines")){validate145.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs12 = errors;for(const key3 in data3){if(!((((key3 === "title") || (key3 === "file")) || (key3 === "lines")) || (key3 === "presets"))){validate145.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs12 === errors){if(data3.title !== undefined){let data4 = data3.title;const _errs13 = errors;if(errors === _errs13){if(typeof data4 === "string"){if(func2(data4) > 200){validate145.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}}else {validate145.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs13 === errors;}else {var valid2 = true;}if(valid2){if(data3.file !== undefined){let data5 = data3.file;const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 120){validate145.errors = [{instancePath:instancePath+"/props/file",schemaPath:"#/properties/props/properties/file/maxLength",keyword:"maxLength",params:{limit: 120},message:"must NOT have more than 120 characters"}];return false;}else {if(!pattern138.test(data5)){validate145.errors = [{instancePath:instancePath+"/props/file",schemaPath:"#/properties/props/properties/file/pattern",keyword:"pattern",params:{pattern: "^[^\\s]+$"},message:"must match pattern \""+"^[^\\s]+$"+"\""}];return false;}}}else {validate145.errors = [{instancePath:instancePath+"/props/file",schemaPath:"#/properties/props/properties/file/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs15 === errors;}else {var valid2 = true;}if(valid2){if(data3.lines !== undefined){let data6 = data3.lines;const _errs17 = errors;if(errors === _errs17){if(Array.isArray(data6)){if(data6.length > 60){validate145.errors = [{instancePath:instancePath+"/props/lines",schemaPath:"#/properties/props/properties/lines/maxItems",keyword:"maxItems",params:{limit: 60},message:"must NOT have more than 60 items"}];return false;}else {if(data6.length < 1){validate145.errors = [{instancePath:instancePath+"/props/lines",schemaPath:"#/properties/props/properties/lines/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid3 = true;const len0 = data6.length;for(let i0=0; i0 300){validate145.errors = [{instancePath:instancePath+"/props/lines/" + i0,schemaPath:"#/properties/props/properties/lines/items/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}}else {validate145.errors = [{instancePath:instancePath+"/props/lines/" + i0,schemaPath:"#/properties/props/properties/lines/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs19 === errors;if(!valid3){break;}}}}}else {validate145.errors = [{instancePath:instancePath+"/props/lines",schemaPath:"#/properties/props/properties/lines/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}if(valid2){if(data3.presets !== undefined){let data8 = data3.presets;const _errs21 = errors;if(errors === _errs21){if(Array.isArray(data8)){if(data8.length > 24){validate145.errors = [{instancePath:instancePath+"/props/presets",schemaPath:"#/properties/props/properties/presets/maxItems",keyword:"maxItems",params:{limit: 24},message:"must NOT have more than 24 items"}];return false;}else {var valid4 = true;const len1 = data8.length;for(let i1=0; i1 200){validate145.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/pattern",schemaPath:"#/properties/props/properties/presets/items/properties/pattern/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}}else {validate145.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/pattern",schemaPath:"#/properties/props/properties/presets/items/properties/pattern/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs26 === errors;}else {var valid5 = true;}if(valid5){if(data9.flags !== undefined){let data11 = data9.flags;const _errs28 = errors;if(errors === _errs28){if(typeof data11 === "string"){if(!pattern139.test(data11)){validate145.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/flags",schemaPath:"#/properties/props/properties/presets/items/properties/flags/pattern",keyword:"pattern",params:{pattern: "^[ivEn]{0,4}$"},message:"must match pattern \""+"^[ivEn]{0,4}$"+"\""}];return false;}}else {validate145.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/flags",schemaPath:"#/properties/props/properties/presets/items/properties/flags/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs28 === errors;}else {var valid5 = true;}if(valid5){if(data9.note !== undefined){let data12 = data9.note;const _errs30 = errors;if(errors === _errs30){if(typeof data12 === "string"){if(func2(data12) > 600){validate145.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/note",schemaPath:"#/properties/props/properties/presets/items/properties/note/maxLength",keyword:"maxLength",params:{limit: 600},message:"must NOT have more than 600 characters"}];return false;}}else {validate145.errors = [{instancePath:instancePath+"/props/presets/" + i1+"/note",schemaPath:"#/properties/props/properties/presets/items/properties/note/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs30 === errors;}else {var valid5 = true;}}}}}}else {validate145.errors = [{instancePath:instancePath+"/props/presets/" + i1,schemaPath:"#/properties/props/properties/presets/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid4 = _errs23 === errors;if(!valid4){break;}}}}else {validate145.errors = [{instancePath:instancePath+"/props/presets",schemaPath:"#/properties/props/properties/presets/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs21 === errors;}else {var valid2 = true;}}}}}}}else {validate145.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs10 === errors;}else {var valid0 = true;}}}}}}else {validate145.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate145.errors = vErrors;return errors === 0;}validate145.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_group_vars_resolver = validate146;const schema214 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/group-vars-resolver.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":42,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["files","hosts","initialSelection1"],"properties":{"files":{"type":"object","additionalProperties":false,"required":["group_vars/datacenters","group_vars/datacenter1","group_vars/datacenter2","host_vars/demo1.example.com","host_vars/demo2.example.com","host_vars/demo3.example.com","host_vars/demo4.example.com"],"properties":{"group_vars/datacenters":{"type":"object","additionalProperties":false,"required":["kind","group","value","rank"],"properties":{"kind":{"type":"string","maxLength":4000},"group":{"type":"string","maxLength":4000},"value":{"type":"string","maxLength":4000},"rank":{"type":"integer"}}},"group_vars/datacenter1":{"type":"object","additionalProperties":false,"required":["kind","group","value","rank"],"properties":{"kind":{"type":"string","maxLength":4000},"group":{"type":"string","maxLength":4000},"value":{"type":"string","maxLength":4000},"rank":{"type":"integer"}}},"group_vars/datacenter2":{"type":"object","additionalProperties":false,"required":["kind","group","value","rank"],"properties":{"kind":{"type":"string","maxLength":4000},"group":{"type":"string","maxLength":4000},"value":{"type":"string","maxLength":4000},"rank":{"type":"integer"}}},"host_vars/demo1.example.com":{"type":"object","additionalProperties":false,"required":["kind","host","value","rank"],"properties":{"kind":{"type":"string","maxLength":4000},"host":{"type":"string","maxLength":4000},"value":{"type":"string","maxLength":4000},"rank":{"type":"integer"}}},"host_vars/demo2.example.com":{"type":"object","additionalProperties":false,"required":["kind","host","value","rank"],"properties":{"kind":{"type":"string","maxLength":4000},"host":{"type":"string","maxLength":4000},"value":{"type":"string","maxLength":4000},"rank":{"type":"integer"}}},"host_vars/demo3.example.com":{"type":"object","additionalProperties":false,"required":["kind","host","value","rank"],"properties":{"kind":{"type":"string","maxLength":4000},"host":{"type":"string","maxLength":4000},"value":{"type":"string","maxLength":4000},"rank":{"type":"integer"}}},"host_vars/demo4.example.com":{"type":"object","additionalProperties":false,"required":["kind","host","value","rank"],"properties":{"kind":{"type":"string","maxLength":4000},"host":{"type":"string","maxLength":4000},"value":{"type":"string","maxLength":4000},"rank":{"type":"integer"}}}}},"hosts":{"type":"object","maxProperties":30,"additionalProperties":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}},"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate146(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/group-vars-resolver.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate146.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate146.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate146.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 42){validate146.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 42},message:"must NOT have more than 42 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate146.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate146.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((((data2.files === undefined) && (missing1 = "files")) || ((data2.hosts === undefined) && (missing1 = "hosts"))) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate146.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(((key2 === "files") || (key2 === "hosts")) || (key2 === "initialSelection1"))){validate146.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.files !== undefined){let data3 = data2.files;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){let missing2;if((((((((data3["group_vars/datacenters"] === undefined) && (missing2 = "group_vars/datacenters")) || ((data3["group_vars/datacenter1"] === undefined) && (missing2 = "group_vars/datacenter1"))) || ((data3["group_vars/datacenter2"] === undefined) && (missing2 = "group_vars/datacenter2"))) || ((data3["host_vars/demo1.example.com"] === undefined) && (missing2 = "host_vars/demo1.example.com"))) || ((data3["host_vars/demo2.example.com"] === undefined) && (missing2 = "host_vars/demo2.example.com"))) || ((data3["host_vars/demo3.example.com"] === undefined) && (missing2 = "host_vars/demo3.example.com"))) || ((data3["host_vars/demo4.example.com"] === undefined) && (missing2 = "host_vars/demo4.example.com"))){validate146.errors = [{instancePath:instancePath+"/data/files",schemaPath:"#/properties/data/properties/files/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs12 = errors;for(const key3 in data3){if(!(((((((key3 === "group_vars/datacenters") || (key3 === "group_vars/datacenter1")) || (key3 === "group_vars/datacenter2")) || (key3 === "host_vars/demo1.example.com")) || (key3 === "host_vars/demo2.example.com")) || (key3 === "host_vars/demo3.example.com")) || (key3 === "host_vars/demo4.example.com"))){validate146.errors = [{instancePath:instancePath+"/data/files",schemaPath:"#/properties/data/properties/files/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs12 === errors){if(data3["group_vars/datacenters"] !== undefined){let data4 = data3["group_vars/datacenters"];const _errs13 = errors;if(errors === _errs13){if(data4 && typeof data4 == "object" && !Array.isArray(data4)){let missing3;if(((((data4.kind === undefined) && (missing3 = "kind")) || ((data4.group === undefined) && (missing3 = "group"))) || ((data4.value === undefined) && (missing3 = "value"))) || ((data4.rank === undefined) && (missing3 = "rank"))){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs15 = errors;for(const key4 in data4){if(!((((key4 === "kind") || (key4 === "group")) || (key4 === "value")) || (key4 === "rank"))){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs15 === errors){if(data4.kind !== undefined){let data5 = data4.kind;const _errs16 = errors;if(errors === _errs16){if(typeof data5 === "string"){if(func2(data5) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters/kind",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/properties/kind/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters/kind",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/properties/kind/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs16 === errors;}else {var valid4 = true;}if(valid4){if(data4.group !== undefined){let data6 = data4.group;const _errs18 = errors;if(errors === _errs18){if(typeof data6 === "string"){if(func2(data6) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters/group",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/properties/group/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters/group",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/properties/group/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs18 === errors;}else {var valid4 = true;}if(valid4){if(data4.value !== undefined){let data7 = data4.value;const _errs20 = errors;if(errors === _errs20){if(typeof data7 === "string"){if(func2(data7) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters/value",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/properties/value/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters/value",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs20 === errors;}else {var valid4 = true;}if(valid4){if(data4.rank !== undefined){let data8 = data4.rank;const _errs22 = errors;if(!(((typeof data8 == "number") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters/rank",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/properties/rank/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs22 === errors;}else {var valid4 = true;}}}}}}}else {validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenters",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenters/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs13 === errors;}else {var valid3 = true;}if(valid3){if(data3["group_vars/datacenter1"] !== undefined){let data9 = data3["group_vars/datacenter1"];const _errs24 = errors;if(errors === _errs24){if(data9 && typeof data9 == "object" && !Array.isArray(data9)){let missing4;if(((((data9.kind === undefined) && (missing4 = "kind")) || ((data9.group === undefined) && (missing4 = "group"))) || ((data9.value === undefined) && (missing4 = "value"))) || ((data9.rank === undefined) && (missing4 = "rank"))){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/required",keyword:"required",params:{missingProperty: missing4},message:"must have required property '"+missing4+"'"}];return false;}else {const _errs26 = errors;for(const key5 in data9){if(!((((key5 === "kind") || (key5 === "group")) || (key5 === "value")) || (key5 === "rank"))){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs26 === errors){if(data9.kind !== undefined){let data10 = data9.kind;const _errs27 = errors;if(errors === _errs27){if(typeof data10 === "string"){if(func2(data10) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1/kind",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/properties/kind/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1/kind",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/properties/kind/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs27 === errors;}else {var valid5 = true;}if(valid5){if(data9.group !== undefined){let data11 = data9.group;const _errs29 = errors;if(errors === _errs29){if(typeof data11 === "string"){if(func2(data11) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1/group",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/properties/group/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1/group",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/properties/group/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs29 === errors;}else {var valid5 = true;}if(valid5){if(data9.value !== undefined){let data12 = data9.value;const _errs31 = errors;if(errors === _errs31){if(typeof data12 === "string"){if(func2(data12) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1/value",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/properties/value/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1/value",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs31 === errors;}else {var valid5 = true;}if(valid5){if(data9.rank !== undefined){let data13 = data9.rank;const _errs33 = errors;if(!(((typeof data13 == "number") && (!(data13 % 1) && !isNaN(data13))) && (isFinite(data13)))){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1/rank",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/properties/rank/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid5 = _errs33 === errors;}else {var valid5 = true;}}}}}}}else {validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter1",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter1/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs24 === errors;}else {var valid3 = true;}if(valid3){if(data3["group_vars/datacenter2"] !== undefined){let data14 = data3["group_vars/datacenter2"];const _errs35 = errors;if(errors === _errs35){if(data14 && typeof data14 == "object" && !Array.isArray(data14)){let missing5;if(((((data14.kind === undefined) && (missing5 = "kind")) || ((data14.group === undefined) && (missing5 = "group"))) || ((data14.value === undefined) && (missing5 = "value"))) || ((data14.rank === undefined) && (missing5 = "rank"))){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/required",keyword:"required",params:{missingProperty: missing5},message:"must have required property '"+missing5+"'"}];return false;}else {const _errs37 = errors;for(const key6 in data14){if(!((((key6 === "kind") || (key6 === "group")) || (key6 === "value")) || (key6 === "rank"))){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"}];return false;break;}}if(_errs37 === errors){if(data14.kind !== undefined){let data15 = data14.kind;const _errs38 = errors;if(errors === _errs38){if(typeof data15 === "string"){if(func2(data15) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2/kind",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/properties/kind/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2/kind",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/properties/kind/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs38 === errors;}else {var valid6 = true;}if(valid6){if(data14.group !== undefined){let data16 = data14.group;const _errs40 = errors;if(errors === _errs40){if(typeof data16 === "string"){if(func2(data16) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2/group",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/properties/group/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2/group",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/properties/group/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs40 === errors;}else {var valid6 = true;}if(valid6){if(data14.value !== undefined){let data17 = data14.value;const _errs42 = errors;if(errors === _errs42){if(typeof data17 === "string"){if(func2(data17) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2/value",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/properties/value/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2/value",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs42 === errors;}else {var valid6 = true;}if(valid6){if(data14.rank !== undefined){let data18 = data14.rank;const _errs44 = errors;if(!(((typeof data18 == "number") && (!(data18 % 1) && !isNaN(data18))) && (isFinite(data18)))){validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2/rank",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/properties/rank/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid6 = _errs44 === errors;}else {var valid6 = true;}}}}}}}else {validate146.errors = [{instancePath:instancePath+"/data/files/group_vars~1datacenter2",schemaPath:"#/properties/data/properties/files/properties/group_vars~1datacenter2/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs35 === errors;}else {var valid3 = true;}if(valid3){if(data3["host_vars/demo1.example.com"] !== undefined){let data19 = data3["host_vars/demo1.example.com"];const _errs46 = errors;if(errors === _errs46){if(data19 && typeof data19 == "object" && !Array.isArray(data19)){let missing6;if(((((data19.kind === undefined) && (missing6 = "kind")) || ((data19.host === undefined) && (missing6 = "host"))) || ((data19.value === undefined) && (missing6 = "value"))) || ((data19.rank === undefined) && (missing6 = "rank"))){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/required",keyword:"required",params:{missingProperty: missing6},message:"must have required property '"+missing6+"'"}];return false;}else {const _errs48 = errors;for(const key7 in data19){if(!((((key7 === "kind") || (key7 === "host")) || (key7 === "value")) || (key7 === "rank"))){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key7},message:"must NOT have additional properties"}];return false;break;}}if(_errs48 === errors){if(data19.kind !== undefined){let data20 = data19.kind;const _errs49 = errors;if(errors === _errs49){if(typeof data20 === "string"){if(func2(data20) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com/kind",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/properties/kind/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com/kind",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/properties/kind/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs49 === errors;}else {var valid7 = true;}if(valid7){if(data19.host !== undefined){let data21 = data19.host;const _errs51 = errors;if(errors === _errs51){if(typeof data21 === "string"){if(func2(data21) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com/host",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/properties/host/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com/host",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/properties/host/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs51 === errors;}else {var valid7 = true;}if(valid7){if(data19.value !== undefined){let data22 = data19.value;const _errs53 = errors;if(errors === _errs53){if(typeof data22 === "string"){if(func2(data22) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com/value",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/properties/value/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com/value",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs53 === errors;}else {var valid7 = true;}if(valid7){if(data19.rank !== undefined){let data23 = data19.rank;const _errs55 = errors;if(!(((typeof data23 == "number") && (!(data23 % 1) && !isNaN(data23))) && (isFinite(data23)))){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com/rank",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/properties/rank/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid7 = _errs55 === errors;}else {var valid7 = true;}}}}}}}else {validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo1.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo1.example.com/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs46 === errors;}else {var valid3 = true;}if(valid3){if(data3["host_vars/demo2.example.com"] !== undefined){let data24 = data3["host_vars/demo2.example.com"];const _errs57 = errors;if(errors === _errs57){if(data24 && typeof data24 == "object" && !Array.isArray(data24)){let missing7;if(((((data24.kind === undefined) && (missing7 = "kind")) || ((data24.host === undefined) && (missing7 = "host"))) || ((data24.value === undefined) && (missing7 = "value"))) || ((data24.rank === undefined) && (missing7 = "rank"))){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/required",keyword:"required",params:{missingProperty: missing7},message:"must have required property '"+missing7+"'"}];return false;}else {const _errs59 = errors;for(const key8 in data24){if(!((((key8 === "kind") || (key8 === "host")) || (key8 === "value")) || (key8 === "rank"))){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key8},message:"must NOT have additional properties"}];return false;break;}}if(_errs59 === errors){if(data24.kind !== undefined){let data25 = data24.kind;const _errs60 = errors;if(errors === _errs60){if(typeof data25 === "string"){if(func2(data25) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com/kind",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/properties/kind/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com/kind",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/properties/kind/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid8 = _errs60 === errors;}else {var valid8 = true;}if(valid8){if(data24.host !== undefined){let data26 = data24.host;const _errs62 = errors;if(errors === _errs62){if(typeof data26 === "string"){if(func2(data26) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com/host",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/properties/host/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com/host",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/properties/host/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid8 = _errs62 === errors;}else {var valid8 = true;}if(valid8){if(data24.value !== undefined){let data27 = data24.value;const _errs64 = errors;if(errors === _errs64){if(typeof data27 === "string"){if(func2(data27) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com/value",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/properties/value/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com/value",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid8 = _errs64 === errors;}else {var valid8 = true;}if(valid8){if(data24.rank !== undefined){let data28 = data24.rank;const _errs66 = errors;if(!(((typeof data28 == "number") && (!(data28 % 1) && !isNaN(data28))) && (isFinite(data28)))){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com/rank",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/properties/rank/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid8 = _errs66 === errors;}else {var valid8 = true;}}}}}}}else {validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo2.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo2.example.com/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs57 === errors;}else {var valid3 = true;}if(valid3){if(data3["host_vars/demo3.example.com"] !== undefined){let data29 = data3["host_vars/demo3.example.com"];const _errs68 = errors;if(errors === _errs68){if(data29 && typeof data29 == "object" && !Array.isArray(data29)){let missing8;if(((((data29.kind === undefined) && (missing8 = "kind")) || ((data29.host === undefined) && (missing8 = "host"))) || ((data29.value === undefined) && (missing8 = "value"))) || ((data29.rank === undefined) && (missing8 = "rank"))){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/required",keyword:"required",params:{missingProperty: missing8},message:"must have required property '"+missing8+"'"}];return false;}else {const _errs70 = errors;for(const key9 in data29){if(!((((key9 === "kind") || (key9 === "host")) || (key9 === "value")) || (key9 === "rank"))){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key9},message:"must NOT have additional properties"}];return false;break;}}if(_errs70 === errors){if(data29.kind !== undefined){let data30 = data29.kind;const _errs71 = errors;if(errors === _errs71){if(typeof data30 === "string"){if(func2(data30) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com/kind",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/properties/kind/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com/kind",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/properties/kind/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid9 = _errs71 === errors;}else {var valid9 = true;}if(valid9){if(data29.host !== undefined){let data31 = data29.host;const _errs73 = errors;if(errors === _errs73){if(typeof data31 === "string"){if(func2(data31) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com/host",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/properties/host/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com/host",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/properties/host/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid9 = _errs73 === errors;}else {var valid9 = true;}if(valid9){if(data29.value !== undefined){let data32 = data29.value;const _errs75 = errors;if(errors === _errs75){if(typeof data32 === "string"){if(func2(data32) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com/value",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/properties/value/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com/value",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid9 = _errs75 === errors;}else {var valid9 = true;}if(valid9){if(data29.rank !== undefined){let data33 = data29.rank;const _errs77 = errors;if(!(((typeof data33 == "number") && (!(data33 % 1) && !isNaN(data33))) && (isFinite(data33)))){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com/rank",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/properties/rank/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid9 = _errs77 === errors;}else {var valid9 = true;}}}}}}}else {validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo3.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo3.example.com/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs68 === errors;}else {var valid3 = true;}if(valid3){if(data3["host_vars/demo4.example.com"] !== undefined){let data34 = data3["host_vars/demo4.example.com"];const _errs79 = errors;if(errors === _errs79){if(data34 && typeof data34 == "object" && !Array.isArray(data34)){let missing9;if(((((data34.kind === undefined) && (missing9 = "kind")) || ((data34.host === undefined) && (missing9 = "host"))) || ((data34.value === undefined) && (missing9 = "value"))) || ((data34.rank === undefined) && (missing9 = "rank"))){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/required",keyword:"required",params:{missingProperty: missing9},message:"must have required property '"+missing9+"'"}];return false;}else {const _errs81 = errors;for(const key10 in data34){if(!((((key10 === "kind") || (key10 === "host")) || (key10 === "value")) || (key10 === "rank"))){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key10},message:"must NOT have additional properties"}];return false;break;}}if(_errs81 === errors){if(data34.kind !== undefined){let data35 = data34.kind;const _errs82 = errors;if(errors === _errs82){if(typeof data35 === "string"){if(func2(data35) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com/kind",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/properties/kind/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com/kind",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/properties/kind/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid10 = _errs82 === errors;}else {var valid10 = true;}if(valid10){if(data34.host !== undefined){let data36 = data34.host;const _errs84 = errors;if(errors === _errs84){if(typeof data36 === "string"){if(func2(data36) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com/host",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/properties/host/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com/host",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/properties/host/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid10 = _errs84 === errors;}else {var valid10 = true;}if(valid10){if(data34.value !== undefined){let data37 = data34.value;const _errs86 = errors;if(errors === _errs86){if(typeof data37 === "string"){if(func2(data37) > 4000){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com/value",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/properties/value/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com/value",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/properties/value/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid10 = _errs86 === errors;}else {var valid10 = true;}if(valid10){if(data34.rank !== undefined){let data38 = data34.rank;const _errs88 = errors;if(!(((typeof data38 == "number") && (!(data38 % 1) && !isNaN(data38))) && (isFinite(data38)))){validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com/rank",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/properties/rank/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid10 = _errs88 === errors;}else {var valid10 = true;}}}}}}}else {validate146.errors = [{instancePath:instancePath+"/data/files/host_vars~1demo4.example.com",schemaPath:"#/properties/data/properties/files/properties/host_vars~1demo4.example.com/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs79 === errors;}else {var valid3 = true;}}}}}}}}}}else {validate146.errors = [{instancePath:instancePath+"/data/files",schemaPath:"#/properties/data/properties/files/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.hosts !== undefined){let data39 = data2.hosts;const _errs90 = errors;if(errors === _errs90){if(data39 && typeof data39 == "object" && !Array.isArray(data39)){if(Object.keys(data39).length > 30){validate146.errors = [{instancePath:instancePath+"/data/hosts",schemaPath:"#/properties/data/properties/hosts/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key11 in data39){let data40 = data39[key11];const _errs93 = errors;if(errors === _errs93){if(Array.isArray(data40)){if(data40.length > 20){validate146.errors = [{instancePath:instancePath+"/data/hosts/" + key11.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/hosts/additionalProperties/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid12 = true;const len0 = data40.length;for(let i0=0; i0 4000){validate146.errors = [{instancePath:instancePath+"/data/hosts/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/properties/hosts/additionalProperties/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/hosts/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/properties/hosts/additionalProperties/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid12 = _errs95 === errors;if(!valid12){break;}}}}else {validate146.errors = [{instancePath:instancePath+"/data/hosts/" + key11.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/hosts/additionalProperties/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid11 = _errs93 === errors;if(!valid11){break;}}}}else {validate146.errors = [{instancePath:instancePath+"/data/hosts",schemaPath:"#/properties/data/properties/hosts/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs90 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data42 = data2.initialSelection1;const _errs97 = errors;if(errors === _errs97){if(typeof data42 === "string"){if(func2(data42) > 4000){validate146.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate146.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs97 === errors;}else {var valid2 = true;}}}}}}else {validate146.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate146.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate146.errors = vErrors;return errors === 0;}validate146.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_handler_timeline = validate147;const schema215 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/handler-timeline.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":45,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["tasks","handlers"],"properties":{"tasks":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["name","notify"],"properties":{"name":{"type":"string","maxLength":4000},"notify":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}},"handlers":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}}};function validate147(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/handler-timeline.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate147.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate147.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate147.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 45){validate147.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 45},message:"must NOT have more than 45 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate147.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate147.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate147.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.tasks === undefined) && (missing1 = "tasks")) || ((data2.handlers === undefined) && (missing1 = "handlers"))){validate147.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "tasks") || (key2 === "handlers"))){validate147.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.tasks !== undefined){let data3 = data2.tasks;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate147.errors = [{instancePath:instancePath+"/data/tasks",schemaPath:"#/properties/data/properties/tasks/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate147.errors = [{instancePath:instancePath+"/data/tasks/" + i0+"/name",schemaPath:"#/properties/data/properties/tasks/items/properties/name/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate147.errors = [{instancePath:instancePath+"/data/tasks/" + i0+"/name",schemaPath:"#/properties/data/properties/tasks/items/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.notify !== undefined){let data6 = data4.notify;const _errs17 = errors;if(errors === _errs17){if(Array.isArray(data6)){if(data6.length > 20){validate147.errors = [{instancePath:instancePath+"/data/tasks/" + i0+"/notify",schemaPath:"#/properties/data/properties/tasks/items/properties/notify/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data6.length;for(let i1=0; i1 4000){validate147.errors = [{instancePath:instancePath+"/data/tasks/" + i0+"/notify/" + i1,schemaPath:"#/properties/data/properties/tasks/items/properties/notify/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate147.errors = [{instancePath:instancePath+"/data/tasks/" + i0+"/notify/" + i1,schemaPath:"#/properties/data/properties/tasks/items/properties/notify/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs19 === errors;if(!valid5){break;}}}}else {validate147.errors = [{instancePath:instancePath+"/data/tasks/" + i0+"/notify",schemaPath:"#/properties/data/properties/tasks/items/properties/notify/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}}}}}else {validate147.errors = [{instancePath:instancePath+"/data/tasks/" + i0,schemaPath:"#/properties/data/properties/tasks/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate147.errors = [{instancePath:instancePath+"/data/tasks",schemaPath:"#/properties/data/properties/tasks/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.handlers !== undefined){let data8 = data2.handlers;const _errs21 = errors;if(errors === _errs21){if(Array.isArray(data8)){if(data8.length > 20){validate147.errors = [{instancePath:instancePath+"/data/handlers",schemaPath:"#/properties/data/properties/handlers/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid6 = true;const len2 = data8.length;for(let i2=0; i2 4000){validate147.errors = [{instancePath:instancePath+"/data/handlers/" + i2,schemaPath:"#/properties/data/properties/handlers/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate147.errors = [{instancePath:instancePath+"/data/handlers/" + i2,schemaPath:"#/properties/data/properties/handlers/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs23 === errors;if(!valid6){break;}}}}else {validate147.errors = [{instancePath:instancePath+"/data/handlers",schemaPath:"#/properties/data/properties/handlers/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs21 === errors;}else {var valid2 = true;}}}}}else {validate147.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate147.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate147.errors = vErrors;return errors === 0;}validate147.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_host_pattern_tester = validate148;const schema216 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/host-pattern-tester.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":45,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["inventory","presets","ops","initialSelection1"],"properties":{"inventory":{"type":"string","maxLength":4000},"presets":{"type":"array","maxItems":22,"items":{"type":"string","maxLength":4000}},"ops":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate148(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/host-pattern-tester.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate148.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate148.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate148.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 45){validate148.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 45},message:"must NOT have more than 45 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate148.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate148.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate148.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((((data2.inventory === undefined) && (missing1 = "inventory")) || ((data2.presets === undefined) && (missing1 = "presets"))) || ((data2.ops === undefined) && (missing1 = "ops"))) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate148.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((((key2 === "inventory") || (key2 === "presets")) || (key2 === "ops")) || (key2 === "initialSelection1"))){validate148.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.inventory !== undefined){let data3 = data2.inventory;const _errs10 = errors;if(errors === _errs10){if(typeof data3 === "string"){if(func2(data3) > 4000){validate148.errors = [{instancePath:instancePath+"/data/inventory",schemaPath:"#/properties/data/properties/inventory/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate148.errors = [{instancePath:instancePath+"/data/inventory",schemaPath:"#/properties/data/properties/inventory/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.presets !== undefined){let data4 = data2.presets;const _errs12 = errors;if(errors === _errs12){if(Array.isArray(data4)){if(data4.length > 22){validate148.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/maxItems",keyword:"maxItems",params:{limit: 22},message:"must NOT have more than 22 items"}];return false;}else {var valid3 = true;const len0 = data4.length;for(let i0=0; i0 4000){validate148.errors = [{instancePath:instancePath+"/data/presets/" + i0,schemaPath:"#/properties/data/properties/presets/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate148.errors = [{instancePath:instancePath+"/data/presets/" + i0,schemaPath:"#/properties/data/properties/presets/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs14 === errors;if(!valid3){break;}}}}else {validate148.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs12 === errors;}else {var valid2 = true;}if(valid2){if(data2.ops !== undefined){let data6 = data2.ops;const _errs16 = errors;if(errors === _errs16){if(data6 && typeof data6 == "object" && !Array.isArray(data6)){if(Object.keys(data6).length > 30){validate148.errors = [{instancePath:instancePath+"/data/ops",schemaPath:"#/properties/data/properties/ops/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data6){let data7 = data6[key3];const _errs19 = errors;if(errors === _errs19){if(typeof data7 === "string"){if(func2(data7) > 4000){validate148.errors = [{instancePath:instancePath+"/data/ops/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/ops/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate148.errors = [{instancePath:instancePath+"/data/ops/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/ops/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs19 === errors;if(!valid4){break;}}}}else {validate148.errors = [{instancePath:instancePath+"/data/ops",schemaPath:"#/properties/data/properties/ops/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs16 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data8 = data2.initialSelection1;const _errs21 = errors;if(errors === _errs21){if(typeof data8 === "string"){if(func2(data8) > 4000){validate148.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate148.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs21 === errors;}else {var valid2 = true;}}}}}}}else {validate148.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate148.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate148.errors = vErrors;return errors === 0;}validate148.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_idempotency_demo = validate149;const schema217 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/idempotency-demo.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":60,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["tasks"],"properties":{"tasks":{"type":"array","maxItems":20,"items":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}}}}}}};function validate149(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/idempotency-demo.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate149.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate149.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate149.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 60){validate149.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 60},message:"must NOT have more than 60 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate149.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate149.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate149.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.tasks === undefined) && (missing1 = "tasks")){validate149.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "tasks")){validate149.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.tasks !== undefined){let data3 = data2.tasks;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate149.errors = [{instancePath:instancePath+"/data/tasks",schemaPath:"#/properties/data/properties/tasks/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 30){validate149.errors = [{instancePath:instancePath+"/data/tasks/" + i0,schemaPath:"#/properties/data/properties/tasks/items/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data4){let data5 = data4[key3];const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate149.errors = [{instancePath:instancePath+"/data/tasks/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/tasks/items/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate149.errors = [{instancePath:instancePath+"/data/tasks/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/tasks/items/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;if(!valid4){break;}}}}else {validate149.errors = [{instancePath:instancePath+"/data/tasks/" + i0,schemaPath:"#/properties/data/properties/tasks/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate149.errors = [{instancePath:instancePath+"/data/tasks",schemaPath:"#/properties/data/properties/tasks/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate149.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate149.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate149.errors = vErrors;return errors === 0;}validate149.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_inventory_explorer = validate150;const schema218 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/inventory-explorer.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":33,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["sample","initialSelection1"],"properties":{"sample":{"type":"string","maxLength":4000},"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate150(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/inventory-explorer.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate150.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate150.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate150.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 33){validate150.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 33},message:"must NOT have more than 33 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate150.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate150.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate150.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.sample === undefined) && (missing1 = "sample")) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate150.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "sample") || (key2 === "initialSelection1"))){validate150.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.sample !== undefined){let data3 = data2.sample;const _errs10 = errors;if(errors === _errs10){if(typeof data3 === "string"){if(func2(data3) > 4000){validate150.errors = [{instancePath:instancePath+"/data/sample",schemaPath:"#/properties/data/properties/sample/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate150.errors = [{instancePath:instancePath+"/data/sample",schemaPath:"#/properties/data/properties/sample/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data4 = data2.initialSelection1;const _errs12 = errors;if(errors === _errs12){if(typeof data4 === "string"){if(func2(data4) > 4000){validate150.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate150.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs12 === errors;}else {var valid2 = true;}}}}}else {validate150.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate150.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate150.errors = vErrors;return errors === 0;}validate150.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_lab_network_map = validate151;const schema219 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/lab-network-map.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["flows","n","initialSelection1"],"properties":{"flows":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["id","label","ok","text","rule","arrows","nodes"],"properties":{"id":{"type":"string","maxLength":4000},"label":{"type":"string","maxLength":4000},"ok":{"type":"boolean"},"text":{"type":"string","maxLength":4000},"rule":{"type":"string","maxLength":4000},"arrows":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["points"],"properties":{"points":{"type":"array","maxItems":20,"items":{"type":"array","maxItems":20,"items":{"type":"integer"}}},"variant":{"type":"string","maxLength":4000},"both":{"type":"boolean"},"label":{"type":"string","maxLength":4000},"labelAt":{"type":"number"},"labelDx":{"type":"integer"},"labelDy":{"type":"integer"},"labelAnchor":{"type":"string","maxLength":4000},"hot":{"type":"boolean"}}}},"nodes":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}},"n":{"type":"object","additionalProperties":false,"required":["net","router","laptop","nic","seal","gw","lxc","ws","sa"],"properties":{"net":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000}}},"router":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000}}},"laptop":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000}}},"nic":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000}}},"seal":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000}}},"gw":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub","titleSize"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000},"titleSize":{"type":"number"}}},"lxc":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000}}},"ws":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","mono"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"mono":{"type":"boolean"}}},"sa":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000}}},"sb":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000}}},"sc":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000}}},"sd":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000}}},"ut":{"type":"object","additionalProperties":false,"required":["x","y","w","h","tone","title","sub","mono"],"properties":{"x":{"type":"integer"},"y":{"type":"integer"},"w":{"type":"integer"},"h":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000},"mono":{"type":"boolean"}}}}},"initialSelection1":{"type":"string","maxLength":4000}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate151(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/lab-network-map.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate151.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate151.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate151.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate151.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate151.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate151.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((((data2.flows === undefined) && (missing1 = "flows")) || ((data2.n === undefined) && (missing1 = "n"))) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate151.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(((key2 === "flows") || (key2 === "n")) || (key2 === "initialSelection1"))){validate151.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.flows !== undefined){let data3 = data2.flows;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate151.errors = [{instancePath:instancePath+"/data/flows",schemaPath:"#/properties/data/properties/flows/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/id",schemaPath:"#/properties/data/properties/flows/items/properties/id/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/id",schemaPath:"#/properties/data/properties/flows/items/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.label !== undefined){let data6 = data4.label;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/label",schemaPath:"#/properties/data/properties/flows/items/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/label",schemaPath:"#/properties/data/properties/flows/items/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.ok !== undefined){const _errs19 = errors;if(typeof data4.ok !== "boolean"){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/ok",schemaPath:"#/properties/data/properties/flows/items/properties/ok/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data4.text !== undefined){let data8 = data4.text;const _errs21 = errors;if(errors === _errs21){if(typeof data8 === "string"){if(func2(data8) > 4000){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/text",schemaPath:"#/properties/data/properties/flows/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/text",schemaPath:"#/properties/data/properties/flows/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs21 === errors;}else {var valid4 = true;}if(valid4){if(data4.rule !== undefined){let data9 = data4.rule;const _errs23 = errors;if(errors === _errs23){if(typeof data9 === "string"){if(func2(data9) > 4000){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/rule",schemaPath:"#/properties/data/properties/flows/items/properties/rule/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/rule",schemaPath:"#/properties/data/properties/flows/items/properties/rule/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs23 === errors;}else {var valid4 = true;}if(valid4){if(data4.arrows !== undefined){let data10 = data4.arrows;const _errs25 = errors;if(errors === _errs25){if(Array.isArray(data10)){if(data10.length > 20){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data10.length;for(let i1=0; i1 20){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/points",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/points/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid7 = true;const len2 = data12.length;for(let i2=0; i2 20){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/points/" + i2,schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/points/items/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid8 = true;const len3 = data13.length;for(let i3=0; i3 4000){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/variant",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/variant/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/variant",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/variant/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs36 === errors;}else {var valid6 = true;}if(valid6){if(data11.both !== undefined){const _errs38 = errors;if(typeof data11.both !== "boolean"){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/both",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/both/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid6 = _errs38 === errors;}else {var valid6 = true;}if(valid6){if(data11.label !== undefined){let data17 = data11.label;const _errs40 = errors;if(errors === _errs40){if(typeof data17 === "string"){if(func2(data17) > 4000){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/label",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/label",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs40 === errors;}else {var valid6 = true;}if(valid6){if(data11.labelAt !== undefined){let data18 = data11.labelAt;const _errs42 = errors;if(!((typeof data18 == "number") && (isFinite(data18)))){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/labelAt",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/labelAt/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}var valid6 = _errs42 === errors;}else {var valid6 = true;}if(valid6){if(data11.labelDx !== undefined){let data19 = data11.labelDx;const _errs44 = errors;if(!(((typeof data19 == "number") && (!(data19 % 1) && !isNaN(data19))) && (isFinite(data19)))){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/labelDx",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/labelDx/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid6 = _errs44 === errors;}else {var valid6 = true;}if(valid6){if(data11.labelDy !== undefined){let data20 = data11.labelDy;const _errs46 = errors;if(!(((typeof data20 == "number") && (!(data20 % 1) && !isNaN(data20))) && (isFinite(data20)))){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/labelDy",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/labelDy/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid6 = _errs46 === errors;}else {var valid6 = true;}if(valid6){if(data11.labelAnchor !== undefined){let data21 = data11.labelAnchor;const _errs48 = errors;if(errors === _errs48){if(typeof data21 === "string"){if(func2(data21) > 4000){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/labelAnchor",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/labelAnchor/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/labelAnchor",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/labelAnchor/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs48 === errors;}else {var valid6 = true;}if(valid6){if(data11.hot !== undefined){const _errs50 = errors;if(typeof data11.hot !== "boolean"){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1+"/hot",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/properties/hot/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid6 = _errs50 === errors;}else {var valid6 = true;}}}}}}}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows/" + i1,schemaPath:"#/properties/data/properties/flows/items/properties/arrows/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs27 === errors;if(!valid5){break;}}}}else {validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/arrows",schemaPath:"#/properties/data/properties/flows/items/properties/arrows/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs25 === errors;}else {var valid4 = true;}if(valid4){if(data4.nodes !== undefined){let data23 = data4.nodes;const _errs52 = errors;if(errors === _errs52){if(Array.isArray(data23)){if(data23.length > 20){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/nodes",schemaPath:"#/properties/data/properties/flows/items/properties/nodes/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid9 = true;const len4 = data23.length;for(let i4=0; i4 4000){validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/nodes/" + i4,schemaPath:"#/properties/data/properties/flows/items/properties/nodes/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/nodes/" + i4,schemaPath:"#/properties/data/properties/flows/items/properties/nodes/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid9 = _errs54 === errors;if(!valid9){break;}}}}else {validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0+"/nodes",schemaPath:"#/properties/data/properties/flows/items/properties/nodes/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs52 === errors;}else {var valid4 = true;}}}}}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data/flows/" + i0,schemaPath:"#/properties/data/properties/flows/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate151.errors = [{instancePath:instancePath+"/data/flows",schemaPath:"#/properties/data/properties/flows/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.n !== undefined){let data25 = data2.n;const _errs56 = errors;if(errors === _errs56){if(data25 && typeof data25 == "object" && !Array.isArray(data25)){let missing4;if((((((((((data25.net === undefined) && (missing4 = "net")) || ((data25.router === undefined) && (missing4 = "router"))) || ((data25.laptop === undefined) && (missing4 = "laptop"))) || ((data25.nic === undefined) && (missing4 = "nic"))) || ((data25.seal === undefined) && (missing4 = "seal"))) || ((data25.gw === undefined) && (missing4 = "gw"))) || ((data25.lxc === undefined) && (missing4 = "lxc"))) || ((data25.ws === undefined) && (missing4 = "ws"))) || ((data25.sa === undefined) && (missing4 = "sa"))){validate151.errors = [{instancePath:instancePath+"/data/n",schemaPath:"#/properties/data/properties/n/required",keyword:"required",params:{missingProperty: missing4},message:"must have required property '"+missing4+"'"}];return false;}else {const _errs58 = errors;for(const key5 in data25){if(!(func1.call(schema219.properties.data.properties.n.properties, key5))){validate151.errors = [{instancePath:instancePath+"/data/n",schemaPath:"#/properties/data/properties/n/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs58 === errors){if(data25.net !== undefined){let data26 = data25.net;const _errs59 = errors;if(errors === _errs59){if(data26 && typeof data26 == "object" && !Array.isArray(data26)){let missing5;if(((((((data26.x === undefined) && (missing5 = "x")) || ((data26.y === undefined) && (missing5 = "y"))) || ((data26.w === undefined) && (missing5 = "w"))) || ((data26.h === undefined) && (missing5 = "h"))) || ((data26.tone === undefined) && (missing5 = "tone"))) || ((data26.title === undefined) && (missing5 = "title"))){validate151.errors = [{instancePath:instancePath+"/data/n/net",schemaPath:"#/properties/data/properties/n/properties/net/required",keyword:"required",params:{missingProperty: missing5},message:"must have required property '"+missing5+"'"}];return false;}else {const _errs61 = errors;for(const key6 in data26){if(!((((((key6 === "x") || (key6 === "y")) || (key6 === "w")) || (key6 === "h")) || (key6 === "tone")) || (key6 === "title"))){validate151.errors = [{instancePath:instancePath+"/data/n/net",schemaPath:"#/properties/data/properties/n/properties/net/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"}];return false;break;}}if(_errs61 === errors){if(data26.x !== undefined){let data27 = data26.x;const _errs62 = errors;if(!(((typeof data27 == "number") && (!(data27 % 1) && !isNaN(data27))) && (isFinite(data27)))){validate151.errors = [{instancePath:instancePath+"/data/n/net/x",schemaPath:"#/properties/data/properties/n/properties/net/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid11 = _errs62 === errors;}else {var valid11 = true;}if(valid11){if(data26.y !== undefined){let data28 = data26.y;const _errs64 = errors;if(!(((typeof data28 == "number") && (!(data28 % 1) && !isNaN(data28))) && (isFinite(data28)))){validate151.errors = [{instancePath:instancePath+"/data/n/net/y",schemaPath:"#/properties/data/properties/n/properties/net/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid11 = _errs64 === errors;}else {var valid11 = true;}if(valid11){if(data26.w !== undefined){let data29 = data26.w;const _errs66 = errors;if(!(((typeof data29 == "number") && (!(data29 % 1) && !isNaN(data29))) && (isFinite(data29)))){validate151.errors = [{instancePath:instancePath+"/data/n/net/w",schemaPath:"#/properties/data/properties/n/properties/net/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid11 = _errs66 === errors;}else {var valid11 = true;}if(valid11){if(data26.h !== undefined){let data30 = data26.h;const _errs68 = errors;if(!(((typeof data30 == "number") && (!(data30 % 1) && !isNaN(data30))) && (isFinite(data30)))){validate151.errors = [{instancePath:instancePath+"/data/n/net/h",schemaPath:"#/properties/data/properties/n/properties/net/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid11 = _errs68 === errors;}else {var valid11 = true;}if(valid11){if(data26.tone !== undefined){let data31 = data26.tone;const _errs70 = errors;if(errors === _errs70){if(typeof data31 === "string"){if(func2(data31) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/net/tone",schemaPath:"#/properties/data/properties/n/properties/net/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/net/tone",schemaPath:"#/properties/data/properties/n/properties/net/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid11 = _errs70 === errors;}else {var valid11 = true;}if(valid11){if(data26.title !== undefined){let data32 = data26.title;const _errs72 = errors;if(errors === _errs72){if(typeof data32 === "string"){if(func2(data32) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/net/title",schemaPath:"#/properties/data/properties/n/properties/net/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/net/title",schemaPath:"#/properties/data/properties/n/properties/net/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid11 = _errs72 === errors;}else {var valid11 = true;}}}}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data/n/net",schemaPath:"#/properties/data/properties/n/properties/net/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs59 === errors;}else {var valid10 = true;}if(valid10){if(data25.router !== undefined){let data33 = data25.router;const _errs74 = errors;if(errors === _errs74){if(data33 && typeof data33 == "object" && !Array.isArray(data33)){let missing6;if((((((((data33.x === undefined) && (missing6 = "x")) || ((data33.y === undefined) && (missing6 = "y"))) || ((data33.w === undefined) && (missing6 = "w"))) || ((data33.h === undefined) && (missing6 = "h"))) || ((data33.tone === undefined) && (missing6 = "tone"))) || ((data33.title === undefined) && (missing6 = "title"))) || ((data33.sub === undefined) && (missing6 = "sub"))){validate151.errors = [{instancePath:instancePath+"/data/n/router",schemaPath:"#/properties/data/properties/n/properties/router/required",keyword:"required",params:{missingProperty: missing6},message:"must have required property '"+missing6+"'"}];return false;}else {const _errs76 = errors;for(const key7 in data33){if(!(((((((key7 === "x") || (key7 === "y")) || (key7 === "w")) || (key7 === "h")) || (key7 === "tone")) || (key7 === "title")) || (key7 === "sub"))){validate151.errors = [{instancePath:instancePath+"/data/n/router",schemaPath:"#/properties/data/properties/n/properties/router/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key7},message:"must NOT have additional properties"}];return false;break;}}if(_errs76 === errors){if(data33.x !== undefined){let data34 = data33.x;const _errs77 = errors;if(!(((typeof data34 == "number") && (!(data34 % 1) && !isNaN(data34))) && (isFinite(data34)))){validate151.errors = [{instancePath:instancePath+"/data/n/router/x",schemaPath:"#/properties/data/properties/n/properties/router/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid12 = _errs77 === errors;}else {var valid12 = true;}if(valid12){if(data33.y !== undefined){let data35 = data33.y;const _errs79 = errors;if(!(((typeof data35 == "number") && (!(data35 % 1) && !isNaN(data35))) && (isFinite(data35)))){validate151.errors = [{instancePath:instancePath+"/data/n/router/y",schemaPath:"#/properties/data/properties/n/properties/router/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid12 = _errs79 === errors;}else {var valid12 = true;}if(valid12){if(data33.w !== undefined){let data36 = data33.w;const _errs81 = errors;if(!(((typeof data36 == "number") && (!(data36 % 1) && !isNaN(data36))) && (isFinite(data36)))){validate151.errors = [{instancePath:instancePath+"/data/n/router/w",schemaPath:"#/properties/data/properties/n/properties/router/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid12 = _errs81 === errors;}else {var valid12 = true;}if(valid12){if(data33.h !== undefined){let data37 = data33.h;const _errs83 = errors;if(!(((typeof data37 == "number") && (!(data37 % 1) && !isNaN(data37))) && (isFinite(data37)))){validate151.errors = [{instancePath:instancePath+"/data/n/router/h",schemaPath:"#/properties/data/properties/n/properties/router/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid12 = _errs83 === errors;}else {var valid12 = true;}if(valid12){if(data33.tone !== undefined){let data38 = data33.tone;const _errs85 = errors;if(errors === _errs85){if(typeof data38 === "string"){if(func2(data38) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/router/tone",schemaPath:"#/properties/data/properties/n/properties/router/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/router/tone",schemaPath:"#/properties/data/properties/n/properties/router/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid12 = _errs85 === errors;}else {var valid12 = true;}if(valid12){if(data33.title !== undefined){let data39 = data33.title;const _errs87 = errors;if(errors === _errs87){if(typeof data39 === "string"){if(func2(data39) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/router/title",schemaPath:"#/properties/data/properties/n/properties/router/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/router/title",schemaPath:"#/properties/data/properties/n/properties/router/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid12 = _errs87 === errors;}else {var valid12 = true;}if(valid12){if(data33.sub !== undefined){let data40 = data33.sub;const _errs89 = errors;if(errors === _errs89){if(typeof data40 === "string"){if(func2(data40) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/router/sub",schemaPath:"#/properties/data/properties/n/properties/router/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/router/sub",schemaPath:"#/properties/data/properties/n/properties/router/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid12 = _errs89 === errors;}else {var valid12 = true;}}}}}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data/n/router",schemaPath:"#/properties/data/properties/n/properties/router/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs74 === errors;}else {var valid10 = true;}if(valid10){if(data25.laptop !== undefined){let data41 = data25.laptop;const _errs91 = errors;if(errors === _errs91){if(data41 && typeof data41 == "object" && !Array.isArray(data41)){let missing7;if(((((((data41.x === undefined) && (missing7 = "x")) || ((data41.y === undefined) && (missing7 = "y"))) || ((data41.w === undefined) && (missing7 = "w"))) || ((data41.h === undefined) && (missing7 = "h"))) || ((data41.tone === undefined) && (missing7 = "tone"))) || ((data41.title === undefined) && (missing7 = "title"))){validate151.errors = [{instancePath:instancePath+"/data/n/laptop",schemaPath:"#/properties/data/properties/n/properties/laptop/required",keyword:"required",params:{missingProperty: missing7},message:"must have required property '"+missing7+"'"}];return false;}else {const _errs93 = errors;for(const key8 in data41){if(!((((((key8 === "x") || (key8 === "y")) || (key8 === "w")) || (key8 === "h")) || (key8 === "tone")) || (key8 === "title"))){validate151.errors = [{instancePath:instancePath+"/data/n/laptop",schemaPath:"#/properties/data/properties/n/properties/laptop/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key8},message:"must NOT have additional properties"}];return false;break;}}if(_errs93 === errors){if(data41.x !== undefined){let data42 = data41.x;const _errs94 = errors;if(!(((typeof data42 == "number") && (!(data42 % 1) && !isNaN(data42))) && (isFinite(data42)))){validate151.errors = [{instancePath:instancePath+"/data/n/laptop/x",schemaPath:"#/properties/data/properties/n/properties/laptop/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid13 = _errs94 === errors;}else {var valid13 = true;}if(valid13){if(data41.y !== undefined){let data43 = data41.y;const _errs96 = errors;if(!(((typeof data43 == "number") && (!(data43 % 1) && !isNaN(data43))) && (isFinite(data43)))){validate151.errors = [{instancePath:instancePath+"/data/n/laptop/y",schemaPath:"#/properties/data/properties/n/properties/laptop/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid13 = _errs96 === errors;}else {var valid13 = true;}if(valid13){if(data41.w !== undefined){let data44 = data41.w;const _errs98 = errors;if(!(((typeof data44 == "number") && (!(data44 % 1) && !isNaN(data44))) && (isFinite(data44)))){validate151.errors = [{instancePath:instancePath+"/data/n/laptop/w",schemaPath:"#/properties/data/properties/n/properties/laptop/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid13 = _errs98 === errors;}else {var valid13 = true;}if(valid13){if(data41.h !== undefined){let data45 = data41.h;const _errs100 = errors;if(!(((typeof data45 == "number") && (!(data45 % 1) && !isNaN(data45))) && (isFinite(data45)))){validate151.errors = [{instancePath:instancePath+"/data/n/laptop/h",schemaPath:"#/properties/data/properties/n/properties/laptop/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid13 = _errs100 === errors;}else {var valid13 = true;}if(valid13){if(data41.tone !== undefined){let data46 = data41.tone;const _errs102 = errors;if(errors === _errs102){if(typeof data46 === "string"){if(func2(data46) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/laptop/tone",schemaPath:"#/properties/data/properties/n/properties/laptop/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/laptop/tone",schemaPath:"#/properties/data/properties/n/properties/laptop/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid13 = _errs102 === errors;}else {var valid13 = true;}if(valid13){if(data41.title !== undefined){let data47 = data41.title;const _errs104 = errors;if(errors === _errs104){if(typeof data47 === "string"){if(func2(data47) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/laptop/title",schemaPath:"#/properties/data/properties/n/properties/laptop/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/laptop/title",schemaPath:"#/properties/data/properties/n/properties/laptop/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid13 = _errs104 === errors;}else {var valid13 = true;}}}}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data/n/laptop",schemaPath:"#/properties/data/properties/n/properties/laptop/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs91 === errors;}else {var valid10 = true;}if(valid10){if(data25.nic !== undefined){let data48 = data25.nic;const _errs106 = errors;if(errors === _errs106){if(data48 && typeof data48 == "object" && !Array.isArray(data48)){let missing8;if((((((((data48.x === undefined) && (missing8 = "x")) || ((data48.y === undefined) && (missing8 = "y"))) || ((data48.w === undefined) && (missing8 = "w"))) || ((data48.h === undefined) && (missing8 = "h"))) || ((data48.tone === undefined) && (missing8 = "tone"))) || ((data48.title === undefined) && (missing8 = "title"))) || ((data48.sub === undefined) && (missing8 = "sub"))){validate151.errors = [{instancePath:instancePath+"/data/n/nic",schemaPath:"#/properties/data/properties/n/properties/nic/required",keyword:"required",params:{missingProperty: missing8},message:"must have required property '"+missing8+"'"}];return false;}else {const _errs108 = errors;for(const key9 in data48){if(!(((((((key9 === "x") || (key9 === "y")) || (key9 === "w")) || (key9 === "h")) || (key9 === "tone")) || (key9 === "title")) || (key9 === "sub"))){validate151.errors = [{instancePath:instancePath+"/data/n/nic",schemaPath:"#/properties/data/properties/n/properties/nic/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key9},message:"must NOT have additional properties"}];return false;break;}}if(_errs108 === errors){if(data48.x !== undefined){let data49 = data48.x;const _errs109 = errors;if(!(((typeof data49 == "number") && (!(data49 % 1) && !isNaN(data49))) && (isFinite(data49)))){validate151.errors = [{instancePath:instancePath+"/data/n/nic/x",schemaPath:"#/properties/data/properties/n/properties/nic/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid14 = _errs109 === errors;}else {var valid14 = true;}if(valid14){if(data48.y !== undefined){let data50 = data48.y;const _errs111 = errors;if(!(((typeof data50 == "number") && (!(data50 % 1) && !isNaN(data50))) && (isFinite(data50)))){validate151.errors = [{instancePath:instancePath+"/data/n/nic/y",schemaPath:"#/properties/data/properties/n/properties/nic/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid14 = _errs111 === errors;}else {var valid14 = true;}if(valid14){if(data48.w !== undefined){let data51 = data48.w;const _errs113 = errors;if(!(((typeof data51 == "number") && (!(data51 % 1) && !isNaN(data51))) && (isFinite(data51)))){validate151.errors = [{instancePath:instancePath+"/data/n/nic/w",schemaPath:"#/properties/data/properties/n/properties/nic/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid14 = _errs113 === errors;}else {var valid14 = true;}if(valid14){if(data48.h !== undefined){let data52 = data48.h;const _errs115 = errors;if(!(((typeof data52 == "number") && (!(data52 % 1) && !isNaN(data52))) && (isFinite(data52)))){validate151.errors = [{instancePath:instancePath+"/data/n/nic/h",schemaPath:"#/properties/data/properties/n/properties/nic/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid14 = _errs115 === errors;}else {var valid14 = true;}if(valid14){if(data48.tone !== undefined){let data53 = data48.tone;const _errs117 = errors;if(errors === _errs117){if(typeof data53 === "string"){if(func2(data53) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/nic/tone",schemaPath:"#/properties/data/properties/n/properties/nic/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/nic/tone",schemaPath:"#/properties/data/properties/n/properties/nic/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid14 = _errs117 === errors;}else {var valid14 = true;}if(valid14){if(data48.title !== undefined){let data54 = data48.title;const _errs119 = errors;if(errors === _errs119){if(typeof data54 === "string"){if(func2(data54) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/nic/title",schemaPath:"#/properties/data/properties/n/properties/nic/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/nic/title",schemaPath:"#/properties/data/properties/n/properties/nic/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid14 = _errs119 === errors;}else {var valid14 = true;}if(valid14){if(data48.sub !== undefined){let data55 = data48.sub;const _errs121 = errors;if(errors === _errs121){if(typeof data55 === "string"){if(func2(data55) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/nic/sub",schemaPath:"#/properties/data/properties/n/properties/nic/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/nic/sub",schemaPath:"#/properties/data/properties/n/properties/nic/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid14 = _errs121 === errors;}else {var valid14 = true;}}}}}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data/n/nic",schemaPath:"#/properties/data/properties/n/properties/nic/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs106 === errors;}else {var valid10 = true;}if(valid10){if(data25.seal !== undefined){let data56 = data25.seal;const _errs123 = errors;if(errors === _errs123){if(data56 && typeof data56 == "object" && !Array.isArray(data56)){let missing9;if((((((((data56.x === undefined) && (missing9 = "x")) || ((data56.y === undefined) && (missing9 = "y"))) || ((data56.w === undefined) && (missing9 = "w"))) || ((data56.h === undefined) && (missing9 = "h"))) || ((data56.tone === undefined) && (missing9 = "tone"))) || ((data56.title === undefined) && (missing9 = "title"))) || ((data56.sub === undefined) && (missing9 = "sub"))){validate151.errors = [{instancePath:instancePath+"/data/n/seal",schemaPath:"#/properties/data/properties/n/properties/seal/required",keyword:"required",params:{missingProperty: missing9},message:"must have required property '"+missing9+"'"}];return false;}else {const _errs125 = errors;for(const key10 in data56){if(!(((((((key10 === "x") || (key10 === "y")) || (key10 === "w")) || (key10 === "h")) || (key10 === "tone")) || (key10 === "title")) || (key10 === "sub"))){validate151.errors = [{instancePath:instancePath+"/data/n/seal",schemaPath:"#/properties/data/properties/n/properties/seal/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key10},message:"must NOT have additional properties"}];return false;break;}}if(_errs125 === errors){if(data56.x !== undefined){let data57 = data56.x;const _errs126 = errors;if(!(((typeof data57 == "number") && (!(data57 % 1) && !isNaN(data57))) && (isFinite(data57)))){validate151.errors = [{instancePath:instancePath+"/data/n/seal/x",schemaPath:"#/properties/data/properties/n/properties/seal/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid15 = _errs126 === errors;}else {var valid15 = true;}if(valid15){if(data56.y !== undefined){let data58 = data56.y;const _errs128 = errors;if(!(((typeof data58 == "number") && (!(data58 % 1) && !isNaN(data58))) && (isFinite(data58)))){validate151.errors = [{instancePath:instancePath+"/data/n/seal/y",schemaPath:"#/properties/data/properties/n/properties/seal/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid15 = _errs128 === errors;}else {var valid15 = true;}if(valid15){if(data56.w !== undefined){let data59 = data56.w;const _errs130 = errors;if(!(((typeof data59 == "number") && (!(data59 % 1) && !isNaN(data59))) && (isFinite(data59)))){validate151.errors = [{instancePath:instancePath+"/data/n/seal/w",schemaPath:"#/properties/data/properties/n/properties/seal/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid15 = _errs130 === errors;}else {var valid15 = true;}if(valid15){if(data56.h !== undefined){let data60 = data56.h;const _errs132 = errors;if(!(((typeof data60 == "number") && (!(data60 % 1) && !isNaN(data60))) && (isFinite(data60)))){validate151.errors = [{instancePath:instancePath+"/data/n/seal/h",schemaPath:"#/properties/data/properties/n/properties/seal/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid15 = _errs132 === errors;}else {var valid15 = true;}if(valid15){if(data56.tone !== undefined){let data61 = data56.tone;const _errs134 = errors;if(errors === _errs134){if(typeof data61 === "string"){if(func2(data61) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/seal/tone",schemaPath:"#/properties/data/properties/n/properties/seal/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/seal/tone",schemaPath:"#/properties/data/properties/n/properties/seal/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid15 = _errs134 === errors;}else {var valid15 = true;}if(valid15){if(data56.title !== undefined){let data62 = data56.title;const _errs136 = errors;if(errors === _errs136){if(typeof data62 === "string"){if(func2(data62) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/seal/title",schemaPath:"#/properties/data/properties/n/properties/seal/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/seal/title",schemaPath:"#/properties/data/properties/n/properties/seal/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid15 = _errs136 === errors;}else {var valid15 = true;}if(valid15){if(data56.sub !== undefined){let data63 = data56.sub;const _errs138 = errors;if(errors === _errs138){if(typeof data63 === "string"){if(func2(data63) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/seal/sub",schemaPath:"#/properties/data/properties/n/properties/seal/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/seal/sub",schemaPath:"#/properties/data/properties/n/properties/seal/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid15 = _errs138 === errors;}else {var valid15 = true;}}}}}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data/n/seal",schemaPath:"#/properties/data/properties/n/properties/seal/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs123 === errors;}else {var valid10 = true;}if(valid10){if(data25.gw !== undefined){let data64 = data25.gw;const _errs140 = errors;if(errors === _errs140){if(data64 && typeof data64 == "object" && !Array.isArray(data64)){let missing10;if(((((((((data64.x === undefined) && (missing10 = "x")) || ((data64.y === undefined) && (missing10 = "y"))) || ((data64.w === undefined) && (missing10 = "w"))) || ((data64.h === undefined) && (missing10 = "h"))) || ((data64.tone === undefined) && (missing10 = "tone"))) || ((data64.title === undefined) && (missing10 = "title"))) || ((data64.sub === undefined) && (missing10 = "sub"))) || ((data64.titleSize === undefined) && (missing10 = "titleSize"))){validate151.errors = [{instancePath:instancePath+"/data/n/gw",schemaPath:"#/properties/data/properties/n/properties/gw/required",keyword:"required",params:{missingProperty: missing10},message:"must have required property '"+missing10+"'"}];return false;}else {const _errs142 = errors;for(const key11 in data64){if(!((((((((key11 === "x") || (key11 === "y")) || (key11 === "w")) || (key11 === "h")) || (key11 === "tone")) || (key11 === "title")) || (key11 === "sub")) || (key11 === "titleSize"))){validate151.errors = [{instancePath:instancePath+"/data/n/gw",schemaPath:"#/properties/data/properties/n/properties/gw/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key11},message:"must NOT have additional properties"}];return false;break;}}if(_errs142 === errors){if(data64.x !== undefined){let data65 = data64.x;const _errs143 = errors;if(!(((typeof data65 == "number") && (!(data65 % 1) && !isNaN(data65))) && (isFinite(data65)))){validate151.errors = [{instancePath:instancePath+"/data/n/gw/x",schemaPath:"#/properties/data/properties/n/properties/gw/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid16 = _errs143 === errors;}else {var valid16 = true;}if(valid16){if(data64.y !== undefined){let data66 = data64.y;const _errs145 = errors;if(!(((typeof data66 == "number") && (!(data66 % 1) && !isNaN(data66))) && (isFinite(data66)))){validate151.errors = [{instancePath:instancePath+"/data/n/gw/y",schemaPath:"#/properties/data/properties/n/properties/gw/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid16 = _errs145 === errors;}else {var valid16 = true;}if(valid16){if(data64.w !== undefined){let data67 = data64.w;const _errs147 = errors;if(!(((typeof data67 == "number") && (!(data67 % 1) && !isNaN(data67))) && (isFinite(data67)))){validate151.errors = [{instancePath:instancePath+"/data/n/gw/w",schemaPath:"#/properties/data/properties/n/properties/gw/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid16 = _errs147 === errors;}else {var valid16 = true;}if(valid16){if(data64.h !== undefined){let data68 = data64.h;const _errs149 = errors;if(!(((typeof data68 == "number") && (!(data68 % 1) && !isNaN(data68))) && (isFinite(data68)))){validate151.errors = [{instancePath:instancePath+"/data/n/gw/h",schemaPath:"#/properties/data/properties/n/properties/gw/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid16 = _errs149 === errors;}else {var valid16 = true;}if(valid16){if(data64.tone !== undefined){let data69 = data64.tone;const _errs151 = errors;if(errors === _errs151){if(typeof data69 === "string"){if(func2(data69) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/gw/tone",schemaPath:"#/properties/data/properties/n/properties/gw/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/gw/tone",schemaPath:"#/properties/data/properties/n/properties/gw/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid16 = _errs151 === errors;}else {var valid16 = true;}if(valid16){if(data64.title !== undefined){let data70 = data64.title;const _errs153 = errors;if(errors === _errs153){if(typeof data70 === "string"){if(func2(data70) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/gw/title",schemaPath:"#/properties/data/properties/n/properties/gw/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/gw/title",schemaPath:"#/properties/data/properties/n/properties/gw/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid16 = _errs153 === errors;}else {var valid16 = true;}if(valid16){if(data64.sub !== undefined){let data71 = data64.sub;const _errs155 = errors;if(errors === _errs155){if(typeof data71 === "string"){if(func2(data71) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/gw/sub",schemaPath:"#/properties/data/properties/n/properties/gw/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/gw/sub",schemaPath:"#/properties/data/properties/n/properties/gw/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid16 = _errs155 === errors;}else {var valid16 = true;}if(valid16){if(data64.titleSize !== undefined){let data72 = data64.titleSize;const _errs157 = errors;if(!((typeof data72 == "number") && (isFinite(data72)))){validate151.errors = [{instancePath:instancePath+"/data/n/gw/titleSize",schemaPath:"#/properties/data/properties/n/properties/gw/properties/titleSize/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}var valid16 = _errs157 === errors;}else {var valid16 = true;}}}}}}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data/n/gw",schemaPath:"#/properties/data/properties/n/properties/gw/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs140 === errors;}else {var valid10 = true;}if(valid10){if(data25.lxc !== undefined){let data73 = data25.lxc;const _errs159 = errors;if(errors === _errs159){if(data73 && typeof data73 == "object" && !Array.isArray(data73)){let missing11;if((((((((data73.x === undefined) && (missing11 = "x")) || ((data73.y === undefined) && (missing11 = "y"))) || ((data73.w === undefined) && (missing11 = "w"))) || ((data73.h === undefined) && (missing11 = "h"))) || ((data73.tone === undefined) && (missing11 = "tone"))) || ((data73.title === undefined) && (missing11 = "title"))) || ((data73.sub === undefined) && (missing11 = "sub"))){validate151.errors = [{instancePath:instancePath+"/data/n/lxc",schemaPath:"#/properties/data/properties/n/properties/lxc/required",keyword:"required",params:{missingProperty: missing11},message:"must have required property '"+missing11+"'"}];return false;}else {const _errs161 = errors;for(const key12 in data73){if(!(((((((key12 === "x") || (key12 === "y")) || (key12 === "w")) || (key12 === "h")) || (key12 === "tone")) || (key12 === "title")) || (key12 === "sub"))){validate151.errors = [{instancePath:instancePath+"/data/n/lxc",schemaPath:"#/properties/data/properties/n/properties/lxc/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key12},message:"must NOT have additional properties"}];return false;break;}}if(_errs161 === errors){if(data73.x !== undefined){let data74 = data73.x;const _errs162 = errors;if(!(((typeof data74 == "number") && (!(data74 % 1) && !isNaN(data74))) && (isFinite(data74)))){validate151.errors = [{instancePath:instancePath+"/data/n/lxc/x",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid17 = _errs162 === errors;}else {var valid17 = true;}if(valid17){if(data73.y !== undefined){let data75 = data73.y;const _errs164 = errors;if(!(((typeof data75 == "number") && (!(data75 % 1) && !isNaN(data75))) && (isFinite(data75)))){validate151.errors = [{instancePath:instancePath+"/data/n/lxc/y",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid17 = _errs164 === errors;}else {var valid17 = true;}if(valid17){if(data73.w !== undefined){let data76 = data73.w;const _errs166 = errors;if(!(((typeof data76 == "number") && (!(data76 % 1) && !isNaN(data76))) && (isFinite(data76)))){validate151.errors = [{instancePath:instancePath+"/data/n/lxc/w",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid17 = _errs166 === errors;}else {var valid17 = true;}if(valid17){if(data73.h !== undefined){let data77 = data73.h;const _errs168 = errors;if(!(((typeof data77 == "number") && (!(data77 % 1) && !isNaN(data77))) && (isFinite(data77)))){validate151.errors = [{instancePath:instancePath+"/data/n/lxc/h",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid17 = _errs168 === errors;}else {var valid17 = true;}if(valid17){if(data73.tone !== undefined){let data78 = data73.tone;const _errs170 = errors;if(errors === _errs170){if(typeof data78 === "string"){if(func2(data78) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/lxc/tone",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/lxc/tone",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid17 = _errs170 === errors;}else {var valid17 = true;}if(valid17){if(data73.title !== undefined){let data79 = data73.title;const _errs172 = errors;if(errors === _errs172){if(typeof data79 === "string"){if(func2(data79) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/lxc/title",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/lxc/title",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid17 = _errs172 === errors;}else {var valid17 = true;}if(valid17){if(data73.sub !== undefined){let data80 = data73.sub;const _errs174 = errors;if(errors === _errs174){if(typeof data80 === "string"){if(func2(data80) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/lxc/sub",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/lxc/sub",schemaPath:"#/properties/data/properties/n/properties/lxc/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid17 = _errs174 === errors;}else {var valid17 = true;}}}}}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data/n/lxc",schemaPath:"#/properties/data/properties/n/properties/lxc/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs159 === errors;}else {var valid10 = true;}if(valid10){if(data25.ws !== undefined){let data81 = data25.ws;const _errs176 = errors;if(errors === _errs176){if(data81 && typeof data81 == "object" && !Array.isArray(data81)){let missing12;if((((((((data81.x === undefined) && (missing12 = "x")) || ((data81.y === undefined) && (missing12 = "y"))) || ((data81.w === undefined) && (missing12 = "w"))) || ((data81.h === undefined) && (missing12 = "h"))) || ((data81.tone === undefined) && (missing12 = "tone"))) || ((data81.title === undefined) && (missing12 = "title"))) || ((data81.mono === undefined) && (missing12 = "mono"))){validate151.errors = [{instancePath:instancePath+"/data/n/ws",schemaPath:"#/properties/data/properties/n/properties/ws/required",keyword:"required",params:{missingProperty: missing12},message:"must have required property '"+missing12+"'"}];return false;}else {const _errs178 = errors;for(const key13 in data81){if(!(((((((key13 === "x") || (key13 === "y")) || (key13 === "w")) || (key13 === "h")) || (key13 === "tone")) || (key13 === "title")) || (key13 === "mono"))){validate151.errors = [{instancePath:instancePath+"/data/n/ws",schemaPath:"#/properties/data/properties/n/properties/ws/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key13},message:"must NOT have additional properties"}];return false;break;}}if(_errs178 === errors){if(data81.x !== undefined){let data82 = data81.x;const _errs179 = errors;if(!(((typeof data82 == "number") && (!(data82 % 1) && !isNaN(data82))) && (isFinite(data82)))){validate151.errors = [{instancePath:instancePath+"/data/n/ws/x",schemaPath:"#/properties/data/properties/n/properties/ws/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid18 = _errs179 === errors;}else {var valid18 = true;}if(valid18){if(data81.y !== undefined){let data83 = data81.y;const _errs181 = errors;if(!(((typeof data83 == "number") && (!(data83 % 1) && !isNaN(data83))) && (isFinite(data83)))){validate151.errors = [{instancePath:instancePath+"/data/n/ws/y",schemaPath:"#/properties/data/properties/n/properties/ws/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid18 = _errs181 === errors;}else {var valid18 = true;}if(valid18){if(data81.w !== undefined){let data84 = data81.w;const _errs183 = errors;if(!(((typeof data84 == "number") && (!(data84 % 1) && !isNaN(data84))) && (isFinite(data84)))){validate151.errors = [{instancePath:instancePath+"/data/n/ws/w",schemaPath:"#/properties/data/properties/n/properties/ws/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid18 = _errs183 === errors;}else {var valid18 = true;}if(valid18){if(data81.h !== undefined){let data85 = data81.h;const _errs185 = errors;if(!(((typeof data85 == "number") && (!(data85 % 1) && !isNaN(data85))) && (isFinite(data85)))){validate151.errors = [{instancePath:instancePath+"/data/n/ws/h",schemaPath:"#/properties/data/properties/n/properties/ws/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid18 = _errs185 === errors;}else {var valid18 = true;}if(valid18){if(data81.tone !== undefined){let data86 = data81.tone;const _errs187 = errors;if(errors === _errs187){if(typeof data86 === "string"){if(func2(data86) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/ws/tone",schemaPath:"#/properties/data/properties/n/properties/ws/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/ws/tone",schemaPath:"#/properties/data/properties/n/properties/ws/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid18 = _errs187 === errors;}else {var valid18 = true;}if(valid18){if(data81.title !== undefined){let data87 = data81.title;const _errs189 = errors;if(errors === _errs189){if(typeof data87 === "string"){if(func2(data87) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/ws/title",schemaPath:"#/properties/data/properties/n/properties/ws/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/ws/title",schemaPath:"#/properties/data/properties/n/properties/ws/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid18 = _errs189 === errors;}else {var valid18 = true;}if(valid18){if(data81.mono !== undefined){const _errs191 = errors;if(typeof data81.mono !== "boolean"){validate151.errors = [{instancePath:instancePath+"/data/n/ws/mono",schemaPath:"#/properties/data/properties/n/properties/ws/properties/mono/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid18 = _errs191 === errors;}else {var valid18 = true;}}}}}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data/n/ws",schemaPath:"#/properties/data/properties/n/properties/ws/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs176 === errors;}else {var valid10 = true;}if(valid10){if(data25.sa !== undefined){let data89 = data25.sa;const _errs193 = errors;if(errors === _errs193){if(data89 && typeof data89 == "object" && !Array.isArray(data89)){let missing13;if((((((((data89.x === undefined) && (missing13 = "x")) || ((data89.y === undefined) && (missing13 = "y"))) || ((data89.w === undefined) && (missing13 = "w"))) || ((data89.h === undefined) && (missing13 = "h"))) || ((data89.tone === undefined) && (missing13 = "tone"))) || ((data89.title === undefined) && (missing13 = "title"))) || ((data89.sub === undefined) && (missing13 = "sub"))){validate151.errors = [{instancePath:instancePath+"/data/n/sa",schemaPath:"#/properties/data/properties/n/properties/sa/required",keyword:"required",params:{missingProperty: missing13},message:"must have required property '"+missing13+"'"}];return false;}else {const _errs195 = errors;for(const key14 in data89){if(!(((((((key14 === "x") || (key14 === "y")) || (key14 === "w")) || (key14 === "h")) || (key14 === "tone")) || (key14 === "title")) || (key14 === "sub"))){validate151.errors = [{instancePath:instancePath+"/data/n/sa",schemaPath:"#/properties/data/properties/n/properties/sa/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key14},message:"must NOT have additional properties"}];return false;break;}}if(_errs195 === errors){if(data89.x !== undefined){let data90 = data89.x;const _errs196 = errors;if(!(((typeof data90 == "number") && (!(data90 % 1) && !isNaN(data90))) && (isFinite(data90)))){validate151.errors = [{instancePath:instancePath+"/data/n/sa/x",schemaPath:"#/properties/data/properties/n/properties/sa/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid19 = _errs196 === errors;}else {var valid19 = true;}if(valid19){if(data89.y !== undefined){let data91 = data89.y;const _errs198 = errors;if(!(((typeof data91 == "number") && (!(data91 % 1) && !isNaN(data91))) && (isFinite(data91)))){validate151.errors = [{instancePath:instancePath+"/data/n/sa/y",schemaPath:"#/properties/data/properties/n/properties/sa/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid19 = _errs198 === errors;}else {var valid19 = true;}if(valid19){if(data89.w !== undefined){let data92 = data89.w;const _errs200 = errors;if(!(((typeof data92 == "number") && (!(data92 % 1) && !isNaN(data92))) && (isFinite(data92)))){validate151.errors = [{instancePath:instancePath+"/data/n/sa/w",schemaPath:"#/properties/data/properties/n/properties/sa/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid19 = _errs200 === errors;}else {var valid19 = true;}if(valid19){if(data89.h !== undefined){let data93 = data89.h;const _errs202 = errors;if(!(((typeof data93 == "number") && (!(data93 % 1) && !isNaN(data93))) && (isFinite(data93)))){validate151.errors = [{instancePath:instancePath+"/data/n/sa/h",schemaPath:"#/properties/data/properties/n/properties/sa/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid19 = _errs202 === errors;}else {var valid19 = true;}if(valid19){if(data89.tone !== undefined){let data94 = data89.tone;const _errs204 = errors;if(errors === _errs204){if(typeof data94 === "string"){if(func2(data94) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/sa/tone",schemaPath:"#/properties/data/properties/n/properties/sa/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/sa/tone",schemaPath:"#/properties/data/properties/n/properties/sa/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs204 === errors;}else {var valid19 = true;}if(valid19){if(data89.title !== undefined){let data95 = data89.title;const _errs206 = errors;if(errors === _errs206){if(typeof data95 === "string"){if(func2(data95) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/sa/title",schemaPath:"#/properties/data/properties/n/properties/sa/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/sa/title",schemaPath:"#/properties/data/properties/n/properties/sa/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs206 === errors;}else {var valid19 = true;}if(valid19){if(data89.sub !== undefined){let data96 = data89.sub;const _errs208 = errors;if(errors === _errs208){if(typeof data96 === "string"){if(func2(data96) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/sa/sub",schemaPath:"#/properties/data/properties/n/properties/sa/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/sa/sub",schemaPath:"#/properties/data/properties/n/properties/sa/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs208 === errors;}else {var valid19 = true;}}}}}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data/n/sa",schemaPath:"#/properties/data/properties/n/properties/sa/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs193 === errors;}else {var valid10 = true;}if(valid10){if(data25.sb !== undefined){let data97 = data25.sb;const _errs210 = errors;if(errors === _errs210){if(data97 && typeof data97 == "object" && !Array.isArray(data97)){let missing14;if((((((((data97.x === undefined) && (missing14 = "x")) || ((data97.y === undefined) && (missing14 = "y"))) || ((data97.w === undefined) && (missing14 = "w"))) || ((data97.h === undefined) && (missing14 = "h"))) || ((data97.tone === undefined) && (missing14 = "tone"))) || ((data97.title === undefined) && (missing14 = "title"))) || ((data97.sub === undefined) && (missing14 = "sub"))){validate151.errors = [{instancePath:instancePath+"/data/n/sb",schemaPath:"#/properties/data/properties/n/properties/sb/required",keyword:"required",params:{missingProperty: missing14},message:"must have required property '"+missing14+"'"}];return false;}else {const _errs212 = errors;for(const key15 in data97){if(!(((((((key15 === "x") || (key15 === "y")) || (key15 === "w")) || (key15 === "h")) || (key15 === "tone")) || (key15 === "title")) || (key15 === "sub"))){validate151.errors = [{instancePath:instancePath+"/data/n/sb",schemaPath:"#/properties/data/properties/n/properties/sb/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key15},message:"must NOT have additional properties"}];return false;break;}}if(_errs212 === errors){if(data97.x !== undefined){let data98 = data97.x;const _errs213 = errors;if(!(((typeof data98 == "number") && (!(data98 % 1) && !isNaN(data98))) && (isFinite(data98)))){validate151.errors = [{instancePath:instancePath+"/data/n/sb/x",schemaPath:"#/properties/data/properties/n/properties/sb/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid20 = _errs213 === errors;}else {var valid20 = true;}if(valid20){if(data97.y !== undefined){let data99 = data97.y;const _errs215 = errors;if(!(((typeof data99 == "number") && (!(data99 % 1) && !isNaN(data99))) && (isFinite(data99)))){validate151.errors = [{instancePath:instancePath+"/data/n/sb/y",schemaPath:"#/properties/data/properties/n/properties/sb/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid20 = _errs215 === errors;}else {var valid20 = true;}if(valid20){if(data97.w !== undefined){let data100 = data97.w;const _errs217 = errors;if(!(((typeof data100 == "number") && (!(data100 % 1) && !isNaN(data100))) && (isFinite(data100)))){validate151.errors = [{instancePath:instancePath+"/data/n/sb/w",schemaPath:"#/properties/data/properties/n/properties/sb/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid20 = _errs217 === errors;}else {var valid20 = true;}if(valid20){if(data97.h !== undefined){let data101 = data97.h;const _errs219 = errors;if(!(((typeof data101 == "number") && (!(data101 % 1) && !isNaN(data101))) && (isFinite(data101)))){validate151.errors = [{instancePath:instancePath+"/data/n/sb/h",schemaPath:"#/properties/data/properties/n/properties/sb/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid20 = _errs219 === errors;}else {var valid20 = true;}if(valid20){if(data97.tone !== undefined){let data102 = data97.tone;const _errs221 = errors;if(errors === _errs221){if(typeof data102 === "string"){if(func2(data102) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/sb/tone",schemaPath:"#/properties/data/properties/n/properties/sb/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/sb/tone",schemaPath:"#/properties/data/properties/n/properties/sb/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid20 = _errs221 === errors;}else {var valid20 = true;}if(valid20){if(data97.title !== undefined){let data103 = data97.title;const _errs223 = errors;if(errors === _errs223){if(typeof data103 === "string"){if(func2(data103) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/sb/title",schemaPath:"#/properties/data/properties/n/properties/sb/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/sb/title",schemaPath:"#/properties/data/properties/n/properties/sb/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid20 = _errs223 === errors;}else {var valid20 = true;}if(valid20){if(data97.sub !== undefined){let data104 = data97.sub;const _errs225 = errors;if(errors === _errs225){if(typeof data104 === "string"){if(func2(data104) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/sb/sub",schemaPath:"#/properties/data/properties/n/properties/sb/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/sb/sub",schemaPath:"#/properties/data/properties/n/properties/sb/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid20 = _errs225 === errors;}else {var valid20 = true;}}}}}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data/n/sb",schemaPath:"#/properties/data/properties/n/properties/sb/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs210 === errors;}else {var valid10 = true;}if(valid10){if(data25.sc !== undefined){let data105 = data25.sc;const _errs227 = errors;if(errors === _errs227){if(data105 && typeof data105 == "object" && !Array.isArray(data105)){let missing15;if((((((((data105.x === undefined) && (missing15 = "x")) || ((data105.y === undefined) && (missing15 = "y"))) || ((data105.w === undefined) && (missing15 = "w"))) || ((data105.h === undefined) && (missing15 = "h"))) || ((data105.tone === undefined) && (missing15 = "tone"))) || ((data105.title === undefined) && (missing15 = "title"))) || ((data105.sub === undefined) && (missing15 = "sub"))){validate151.errors = [{instancePath:instancePath+"/data/n/sc",schemaPath:"#/properties/data/properties/n/properties/sc/required",keyword:"required",params:{missingProperty: missing15},message:"must have required property '"+missing15+"'"}];return false;}else {const _errs229 = errors;for(const key16 in data105){if(!(((((((key16 === "x") || (key16 === "y")) || (key16 === "w")) || (key16 === "h")) || (key16 === "tone")) || (key16 === "title")) || (key16 === "sub"))){validate151.errors = [{instancePath:instancePath+"/data/n/sc",schemaPath:"#/properties/data/properties/n/properties/sc/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key16},message:"must NOT have additional properties"}];return false;break;}}if(_errs229 === errors){if(data105.x !== undefined){let data106 = data105.x;const _errs230 = errors;if(!(((typeof data106 == "number") && (!(data106 % 1) && !isNaN(data106))) && (isFinite(data106)))){validate151.errors = [{instancePath:instancePath+"/data/n/sc/x",schemaPath:"#/properties/data/properties/n/properties/sc/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid21 = _errs230 === errors;}else {var valid21 = true;}if(valid21){if(data105.y !== undefined){let data107 = data105.y;const _errs232 = errors;if(!(((typeof data107 == "number") && (!(data107 % 1) && !isNaN(data107))) && (isFinite(data107)))){validate151.errors = [{instancePath:instancePath+"/data/n/sc/y",schemaPath:"#/properties/data/properties/n/properties/sc/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid21 = _errs232 === errors;}else {var valid21 = true;}if(valid21){if(data105.w !== undefined){let data108 = data105.w;const _errs234 = errors;if(!(((typeof data108 == "number") && (!(data108 % 1) && !isNaN(data108))) && (isFinite(data108)))){validate151.errors = [{instancePath:instancePath+"/data/n/sc/w",schemaPath:"#/properties/data/properties/n/properties/sc/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid21 = _errs234 === errors;}else {var valid21 = true;}if(valid21){if(data105.h !== undefined){let data109 = data105.h;const _errs236 = errors;if(!(((typeof data109 == "number") && (!(data109 % 1) && !isNaN(data109))) && (isFinite(data109)))){validate151.errors = [{instancePath:instancePath+"/data/n/sc/h",schemaPath:"#/properties/data/properties/n/properties/sc/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid21 = _errs236 === errors;}else {var valid21 = true;}if(valid21){if(data105.tone !== undefined){let data110 = data105.tone;const _errs238 = errors;if(errors === _errs238){if(typeof data110 === "string"){if(func2(data110) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/sc/tone",schemaPath:"#/properties/data/properties/n/properties/sc/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/sc/tone",schemaPath:"#/properties/data/properties/n/properties/sc/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid21 = _errs238 === errors;}else {var valid21 = true;}if(valid21){if(data105.title !== undefined){let data111 = data105.title;const _errs240 = errors;if(errors === _errs240){if(typeof data111 === "string"){if(func2(data111) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/sc/title",schemaPath:"#/properties/data/properties/n/properties/sc/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/sc/title",schemaPath:"#/properties/data/properties/n/properties/sc/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid21 = _errs240 === errors;}else {var valid21 = true;}if(valid21){if(data105.sub !== undefined){let data112 = data105.sub;const _errs242 = errors;if(errors === _errs242){if(typeof data112 === "string"){if(func2(data112) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/sc/sub",schemaPath:"#/properties/data/properties/n/properties/sc/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/sc/sub",schemaPath:"#/properties/data/properties/n/properties/sc/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid21 = _errs242 === errors;}else {var valid21 = true;}}}}}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data/n/sc",schemaPath:"#/properties/data/properties/n/properties/sc/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs227 === errors;}else {var valid10 = true;}if(valid10){if(data25.sd !== undefined){let data113 = data25.sd;const _errs244 = errors;if(errors === _errs244){if(data113 && typeof data113 == "object" && !Array.isArray(data113)){let missing16;if((((((((data113.x === undefined) && (missing16 = "x")) || ((data113.y === undefined) && (missing16 = "y"))) || ((data113.w === undefined) && (missing16 = "w"))) || ((data113.h === undefined) && (missing16 = "h"))) || ((data113.tone === undefined) && (missing16 = "tone"))) || ((data113.title === undefined) && (missing16 = "title"))) || ((data113.sub === undefined) && (missing16 = "sub"))){validate151.errors = [{instancePath:instancePath+"/data/n/sd",schemaPath:"#/properties/data/properties/n/properties/sd/required",keyword:"required",params:{missingProperty: missing16},message:"must have required property '"+missing16+"'"}];return false;}else {const _errs246 = errors;for(const key17 in data113){if(!(((((((key17 === "x") || (key17 === "y")) || (key17 === "w")) || (key17 === "h")) || (key17 === "tone")) || (key17 === "title")) || (key17 === "sub"))){validate151.errors = [{instancePath:instancePath+"/data/n/sd",schemaPath:"#/properties/data/properties/n/properties/sd/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key17},message:"must NOT have additional properties"}];return false;break;}}if(_errs246 === errors){if(data113.x !== undefined){let data114 = data113.x;const _errs247 = errors;if(!(((typeof data114 == "number") && (!(data114 % 1) && !isNaN(data114))) && (isFinite(data114)))){validate151.errors = [{instancePath:instancePath+"/data/n/sd/x",schemaPath:"#/properties/data/properties/n/properties/sd/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid22 = _errs247 === errors;}else {var valid22 = true;}if(valid22){if(data113.y !== undefined){let data115 = data113.y;const _errs249 = errors;if(!(((typeof data115 == "number") && (!(data115 % 1) && !isNaN(data115))) && (isFinite(data115)))){validate151.errors = [{instancePath:instancePath+"/data/n/sd/y",schemaPath:"#/properties/data/properties/n/properties/sd/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid22 = _errs249 === errors;}else {var valid22 = true;}if(valid22){if(data113.w !== undefined){let data116 = data113.w;const _errs251 = errors;if(!(((typeof data116 == "number") && (!(data116 % 1) && !isNaN(data116))) && (isFinite(data116)))){validate151.errors = [{instancePath:instancePath+"/data/n/sd/w",schemaPath:"#/properties/data/properties/n/properties/sd/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid22 = _errs251 === errors;}else {var valid22 = true;}if(valid22){if(data113.h !== undefined){let data117 = data113.h;const _errs253 = errors;if(!(((typeof data117 == "number") && (!(data117 % 1) && !isNaN(data117))) && (isFinite(data117)))){validate151.errors = [{instancePath:instancePath+"/data/n/sd/h",schemaPath:"#/properties/data/properties/n/properties/sd/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid22 = _errs253 === errors;}else {var valid22 = true;}if(valid22){if(data113.tone !== undefined){let data118 = data113.tone;const _errs255 = errors;if(errors === _errs255){if(typeof data118 === "string"){if(func2(data118) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/sd/tone",schemaPath:"#/properties/data/properties/n/properties/sd/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/sd/tone",schemaPath:"#/properties/data/properties/n/properties/sd/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid22 = _errs255 === errors;}else {var valid22 = true;}if(valid22){if(data113.title !== undefined){let data119 = data113.title;const _errs257 = errors;if(errors === _errs257){if(typeof data119 === "string"){if(func2(data119) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/sd/title",schemaPath:"#/properties/data/properties/n/properties/sd/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/sd/title",schemaPath:"#/properties/data/properties/n/properties/sd/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid22 = _errs257 === errors;}else {var valid22 = true;}if(valid22){if(data113.sub !== undefined){let data120 = data113.sub;const _errs259 = errors;if(errors === _errs259){if(typeof data120 === "string"){if(func2(data120) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/sd/sub",schemaPath:"#/properties/data/properties/n/properties/sd/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/sd/sub",schemaPath:"#/properties/data/properties/n/properties/sd/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid22 = _errs259 === errors;}else {var valid22 = true;}}}}}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data/n/sd",schemaPath:"#/properties/data/properties/n/properties/sd/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs244 === errors;}else {var valid10 = true;}if(valid10){if(data25.ut !== undefined){let data121 = data25.ut;const _errs261 = errors;if(errors === _errs261){if(data121 && typeof data121 == "object" && !Array.isArray(data121)){let missing17;if(((((((((data121.x === undefined) && (missing17 = "x")) || ((data121.y === undefined) && (missing17 = "y"))) || ((data121.w === undefined) && (missing17 = "w"))) || ((data121.h === undefined) && (missing17 = "h"))) || ((data121.tone === undefined) && (missing17 = "tone"))) || ((data121.title === undefined) && (missing17 = "title"))) || ((data121.sub === undefined) && (missing17 = "sub"))) || ((data121.mono === undefined) && (missing17 = "mono"))){validate151.errors = [{instancePath:instancePath+"/data/n/ut",schemaPath:"#/properties/data/properties/n/properties/ut/required",keyword:"required",params:{missingProperty: missing17},message:"must have required property '"+missing17+"'"}];return false;}else {const _errs263 = errors;for(const key18 in data121){if(!((((((((key18 === "x") || (key18 === "y")) || (key18 === "w")) || (key18 === "h")) || (key18 === "tone")) || (key18 === "title")) || (key18 === "sub")) || (key18 === "mono"))){validate151.errors = [{instancePath:instancePath+"/data/n/ut",schemaPath:"#/properties/data/properties/n/properties/ut/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key18},message:"must NOT have additional properties"}];return false;break;}}if(_errs263 === errors){if(data121.x !== undefined){let data122 = data121.x;const _errs264 = errors;if(!(((typeof data122 == "number") && (!(data122 % 1) && !isNaN(data122))) && (isFinite(data122)))){validate151.errors = [{instancePath:instancePath+"/data/n/ut/x",schemaPath:"#/properties/data/properties/n/properties/ut/properties/x/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid23 = _errs264 === errors;}else {var valid23 = true;}if(valid23){if(data121.y !== undefined){let data123 = data121.y;const _errs266 = errors;if(!(((typeof data123 == "number") && (!(data123 % 1) && !isNaN(data123))) && (isFinite(data123)))){validate151.errors = [{instancePath:instancePath+"/data/n/ut/y",schemaPath:"#/properties/data/properties/n/properties/ut/properties/y/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid23 = _errs266 === errors;}else {var valid23 = true;}if(valid23){if(data121.w !== undefined){let data124 = data121.w;const _errs268 = errors;if(!(((typeof data124 == "number") && (!(data124 % 1) && !isNaN(data124))) && (isFinite(data124)))){validate151.errors = [{instancePath:instancePath+"/data/n/ut/w",schemaPath:"#/properties/data/properties/n/properties/ut/properties/w/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid23 = _errs268 === errors;}else {var valid23 = true;}if(valid23){if(data121.h !== undefined){let data125 = data121.h;const _errs270 = errors;if(!(((typeof data125 == "number") && (!(data125 % 1) && !isNaN(data125))) && (isFinite(data125)))){validate151.errors = [{instancePath:instancePath+"/data/n/ut/h",schemaPath:"#/properties/data/properties/n/properties/ut/properties/h/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid23 = _errs270 === errors;}else {var valid23 = true;}if(valid23){if(data121.tone !== undefined){let data126 = data121.tone;const _errs272 = errors;if(errors === _errs272){if(typeof data126 === "string"){if(func2(data126) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/ut/tone",schemaPath:"#/properties/data/properties/n/properties/ut/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/ut/tone",schemaPath:"#/properties/data/properties/n/properties/ut/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid23 = _errs272 === errors;}else {var valid23 = true;}if(valid23){if(data121.title !== undefined){let data127 = data121.title;const _errs274 = errors;if(errors === _errs274){if(typeof data127 === "string"){if(func2(data127) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/ut/title",schemaPath:"#/properties/data/properties/n/properties/ut/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/ut/title",schemaPath:"#/properties/data/properties/n/properties/ut/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid23 = _errs274 === errors;}else {var valid23 = true;}if(valid23){if(data121.sub !== undefined){let data128 = data121.sub;const _errs276 = errors;if(errors === _errs276){if(typeof data128 === "string"){if(func2(data128) > 4000){validate151.errors = [{instancePath:instancePath+"/data/n/ut/sub",schemaPath:"#/properties/data/properties/n/properties/ut/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/n/ut/sub",schemaPath:"#/properties/data/properties/n/properties/ut/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid23 = _errs276 === errors;}else {var valid23 = true;}if(valid23){if(data121.mono !== undefined){const _errs278 = errors;if(typeof data121.mono !== "boolean"){validate151.errors = [{instancePath:instancePath+"/data/n/ut/mono",schemaPath:"#/properties/data/properties/n/properties/ut/properties/mono/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid23 = _errs278 === errors;}else {var valid23 = true;}}}}}}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data/n/ut",schemaPath:"#/properties/data/properties/n/properties/ut/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs261 === errors;}else {var valid10 = true;}}}}}}}}}}}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data/n",schemaPath:"#/properties/data/properties/n/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs56 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data130 = data2.initialSelection1;const _errs280 = errors;if(errors === _errs280){if(typeof data130 === "string"){if(func2(data130) > 4000){validate151.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs280 === errors;}else {var valid2 = true;}}}}}}else {validate151.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data131 = data.dependencies;const _errs282 = errors;if(errors === _errs282){if(data131 && typeof data131 == "object" && !Array.isArray(data131)){for(const key19 in data131){const _errs284 = errors;if(typeof key19 === "string"){if(!pattern90.test(key19)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key19};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid24 = _errs284 === errors;if(!valid24){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key19},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate151.errors = vErrors;return false;break;}}if(valid24){for(const key20 in data131){let data132 = data131[key20];const _errs286 = errors;if(errors === _errs286){if(data132 && typeof data132 == "object" && !Array.isArray(data132)){const _errs288 = errors;for(const key21 in data132){if(!((key21 === "text") || (key21 === "data"))){validate151.errors = [{instancePath:instancePath+"/dependencies/" + key20.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key21},message:"must NOT have additional properties"}];return false;break;}}if(_errs288 === errors){if(data132.text !== undefined){let data133 = data132.text;const _errs289 = errors;if(errors === _errs289){if(data133 && typeof data133 == "object" && !Array.isArray(data133)){for(const key22 in data133){let data134 = data133[key22];const _errs292 = errors;if(errors === _errs292){if(typeof data134 === "string"){if(func2(data134) > 4000){validate151.errors = [{instancePath:instancePath+"/dependencies/" + key20.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key22.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate151.errors = [{instancePath:instancePath+"/dependencies/" + key20.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key22.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid27 = _errs292 === errors;if(!valid27){break;}}}else {validate151.errors = [{instancePath:instancePath+"/dependencies/" + key20.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid26 = _errs289 === errors;}else {var valid26 = true;}if(valid26){if(data132.data !== undefined){let data135 = data132.data;const _errs294 = errors;if(!(data135 && typeof data135 == "object" && !Array.isArray(data135))){validate151.errors = [{instancePath:instancePath+"/dependencies/" + key20.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid26 = _errs294 === errors;}else {var valid26 = true;}}}}else {validate151.errors = [{instancePath:instancePath+"/dependencies/" + key20.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid25 = _errs286 === errors;if(!valid25){break;}}}}else {validate151.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs282 === errors;}else {var valid0 = true;}}}}}}else {validate151.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate151.errors = vErrors;return errors === 0;}validate151.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_loop_unroller = validate152;const schema220 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/loop-unroller.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":57,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["initialSelection1"],"properties":{"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate152(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/loop-unroller.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate152.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate152.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate152.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 57){validate152.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 57},message:"must NOT have more than 57 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate152.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate152.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate152.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1")){validate152.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "initialSelection1")){validate152.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.initialSelection1 !== undefined){let data3 = data2.initialSelection1;const _errs10 = errors;if(errors === _errs10){if(typeof data3 === "string"){if(func2(data3) > 4000){validate152.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate152.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}}}else {validate152.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate152.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate152.errors = vErrors;return errors === 0;}validate152.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_magic_variables = validate153;const schema221 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/magic-variables.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["inventory","fqdn","initialSelection1"],"properties":{"inventory":{"type":"string","maxLength":4000},"fqdn":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"initialSelection1":{"type":"string","maxLength":4000}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate153(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/magic-variables.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate153.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate153.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate153.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate153.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate153.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate153.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate153.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((((data2.inventory === undefined) && (missing1 = "inventory")) || ((data2.fqdn === undefined) && (missing1 = "fqdn"))) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate153.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(((key2 === "inventory") || (key2 === "fqdn")) || (key2 === "initialSelection1"))){validate153.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.inventory !== undefined){let data3 = data2.inventory;const _errs10 = errors;if(errors === _errs10){if(typeof data3 === "string"){if(func2(data3) > 4000){validate153.errors = [{instancePath:instancePath+"/data/inventory",schemaPath:"#/properties/data/properties/inventory/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate153.errors = [{instancePath:instancePath+"/data/inventory",schemaPath:"#/properties/data/properties/inventory/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.fqdn !== undefined){let data4 = data2.fqdn;const _errs12 = errors;if(errors === _errs12){if(data4 && typeof data4 == "object" && !Array.isArray(data4)){if(Object.keys(data4).length > 30){validate153.errors = [{instancePath:instancePath+"/data/fqdn",schemaPath:"#/properties/data/properties/fqdn/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data4){let data5 = data4[key3];const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate153.errors = [{instancePath:instancePath+"/data/fqdn/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/fqdn/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate153.errors = [{instancePath:instancePath+"/data/fqdn/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/fqdn/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs15 === errors;if(!valid3){break;}}}}else {validate153.errors = [{instancePath:instancePath+"/data/fqdn",schemaPath:"#/properties/data/properties/fqdn/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs12 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data6 = data2.initialSelection1;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate153.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate153.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}}}}}}else {validate153.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data7 = data.dependencies;const _errs19 = errors;if(errors === _errs19){if(data7 && typeof data7 == "object" && !Array.isArray(data7)){for(const key4 in data7){const _errs21 = errors;if(typeof key4 === "string"){if(!pattern90.test(key4)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key4};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid4 = _errs21 === errors;if(!valid4){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key4},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate153.errors = vErrors;return false;break;}}if(valid4){for(const key5 in data7){let data8 = data7[key5];const _errs23 = errors;if(errors === _errs23){if(data8 && typeof data8 == "object" && !Array.isArray(data8)){const _errs25 = errors;for(const key6 in data8){if(!((key6 === "text") || (key6 === "data"))){validate153.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"}];return false;break;}}if(_errs25 === errors){if(data8.text !== undefined){let data9 = data8.text;const _errs26 = errors;if(errors === _errs26){if(data9 && typeof data9 == "object" && !Array.isArray(data9)){for(const key7 in data9){let data10 = data9[key7];const _errs29 = errors;if(errors === _errs29){if(typeof data10 === "string"){if(func2(data10) > 4000){validate153.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate153.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs29 === errors;if(!valid7){break;}}}else {validate153.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid6 = _errs26 === errors;}else {var valid6 = true;}if(valid6){if(data8.data !== undefined){let data11 = data8.data;const _errs31 = errors;if(!(data11 && typeof data11 == "object" && !Array.isArray(data11))){validate153.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid6 = _errs31 === errors;}else {var valid6 = true;}}}}else {validate153.errors = [{instancePath:instancePath+"/dependencies/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs23 === errors;if(!valid5){break;}}}}else {validate153.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs19 === errors;}else {var valid0 = true;}}}}}}else {validate153.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate153.errors = vErrors;return errors === 0;}validate153.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_mode_calculator = validate154;const schema222 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/mode-calculator.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":66,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["who","presets"],"properties":{"who":{"type":"array","maxItems":20,"items":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}},"presets":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate154(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/mode-calculator.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate154.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate154.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "dependencies"))){validate154.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 66){validate154.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 66},message:"must NOT have more than 66 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate154.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate154.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate154.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.who === undefined) && (missing1 = "who")) || ((data2.presets === undefined) && (missing1 = "presets"))){validate154.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "who") || (key2 === "presets"))){validate154.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.who !== undefined){let data3 = data2.who;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate154.errors = [{instancePath:instancePath+"/data/who",schemaPath:"#/properties/data/properties/who/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 20){validate154.errors = [{instancePath:instancePath+"/data/who/" + i0,schemaPath:"#/properties/data/properties/who/items/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid4 = true;const len1 = data4.length;for(let i1=0; i1 4000){validate154.errors = [{instancePath:instancePath+"/data/who/" + i0+"/" + i1,schemaPath:"#/properties/data/properties/who/items/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate154.errors = [{instancePath:instancePath+"/data/who/" + i0+"/" + i1,schemaPath:"#/properties/data/properties/who/items/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs14 === errors;if(!valid4){break;}}}}else {validate154.errors = [{instancePath:instancePath+"/data/who/" + i0,schemaPath:"#/properties/data/properties/who/items/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate154.errors = [{instancePath:instancePath+"/data/who",schemaPath:"#/properties/data/properties/who/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.presets !== undefined){let data6 = data2.presets;const _errs16 = errors;if(errors === _errs16){if(Array.isArray(data6)){if(data6.length > 20){validate154.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len2 = data6.length;for(let i2=0; i2 4000){validate154.errors = [{instancePath:instancePath+"/data/presets/" + i2,schemaPath:"#/properties/data/properties/presets/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate154.errors = [{instancePath:instancePath+"/data/presets/" + i2,schemaPath:"#/properties/data/properties/presets/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs18 === errors;if(!valid5){break;}}}}else {validate154.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs16 === errors;}else {var valid2 = true;}}}}}else {validate154.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data8 = data.dependencies;const _errs20 = errors;if(errors === _errs20){if(data8 && typeof data8 == "object" && !Array.isArray(data8)){for(const key3 in data8){const _errs22 = errors;if(typeof key3 === "string"){if(!pattern90.test(key3)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key3};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid6 = _errs22 === errors;if(!valid6){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key3},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate154.errors = vErrors;return false;break;}}if(valid6){for(const key4 in data8){let data9 = data8[key4];const _errs24 = errors;if(errors === _errs24){if(data9 && typeof data9 == "object" && !Array.isArray(data9)){const _errs26 = errors;for(const key5 in data9){if(!((key5 === "text") || (key5 === "data"))){validate154.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs26 === errors){if(data9.text !== undefined){let data10 = data9.text;const _errs27 = errors;if(errors === _errs27){if(data10 && typeof data10 == "object" && !Array.isArray(data10)){for(const key6 in data10){let data11 = data10[key6];const _errs30 = errors;if(errors === _errs30){if(typeof data11 === "string"){if(func2(data11) > 4000){validate154.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate154.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key6.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid9 = _errs30 === errors;if(!valid9){break;}}}else {validate154.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid8 = _errs27 === errors;}else {var valid8 = true;}if(valid8){if(data9.data !== undefined){let data12 = data9.data;const _errs32 = errors;if(!(data12 && typeof data12 == "object" && !Array.isArray(data12))){validate154.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid8 = _errs32 === errors;}else {var valid8 = true;}}}}else {validate154.errors = [{instancePath:instancePath+"/dependencies/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid7 = _errs24 === errors;if(!valid7){break;}}}}else {validate154.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs20 === errors;}else {var valid0 = true;}}}}}}else {validate154.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate154.errors = vErrors;return errors === 0;}validate154.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_module_explorer = validate155;const schema223 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/module-explorer.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["modules","cats","initialSelection1","initialSelection2"],"properties":{"modules":{"type":"array","maxItems":34,"items":{"type":"object","additionalProperties":false,"required":["fqcn","cat","text"],"properties":{"fqcn":{"type":"string","maxLength":4000},"cat":{"type":"string","maxLength":4000},"text":{"type":"string","maxLength":4000},"warn":{"type":"boolean"}}}},"cats":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"initialSelection1":{"type":"string","maxLength":4000},"initialSelection2":{"type":"string","maxLength":4000}}}}};function validate155(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/module-explorer.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate155.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate155.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate155.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate155.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate155.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate155.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate155.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((((data2.modules === undefined) && (missing1 = "modules")) || ((data2.cats === undefined) && (missing1 = "cats"))) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))) || ((data2.initialSelection2 === undefined) && (missing1 = "initialSelection2"))){validate155.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((((key2 === "modules") || (key2 === "cats")) || (key2 === "initialSelection1")) || (key2 === "initialSelection2"))){validate155.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.modules !== undefined){let data3 = data2.modules;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 34){validate155.errors = [{instancePath:instancePath+"/data/modules",schemaPath:"#/properties/data/properties/modules/maxItems",keyword:"maxItems",params:{limit: 34},message:"must NOT have more than 34 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate155.errors = [{instancePath:instancePath+"/data/modules/" + i0+"/fqcn",schemaPath:"#/properties/data/properties/modules/items/properties/fqcn/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate155.errors = [{instancePath:instancePath+"/data/modules/" + i0+"/fqcn",schemaPath:"#/properties/data/properties/modules/items/properties/fqcn/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.cat !== undefined){let data6 = data4.cat;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate155.errors = [{instancePath:instancePath+"/data/modules/" + i0+"/cat",schemaPath:"#/properties/data/properties/modules/items/properties/cat/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate155.errors = [{instancePath:instancePath+"/data/modules/" + i0+"/cat",schemaPath:"#/properties/data/properties/modules/items/properties/cat/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.text !== undefined){let data7 = data4.text;const _errs19 = errors;if(errors === _errs19){if(typeof data7 === "string"){if(func2(data7) > 4000){validate155.errors = [{instancePath:instancePath+"/data/modules/" + i0+"/text",schemaPath:"#/properties/data/properties/modules/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate155.errors = [{instancePath:instancePath+"/data/modules/" + i0+"/text",schemaPath:"#/properties/data/properties/modules/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data4.warn !== undefined){const _errs21 = errors;if(typeof data4.warn !== "boolean"){validate155.errors = [{instancePath:instancePath+"/data/modules/" + i0+"/warn",schemaPath:"#/properties/data/properties/modules/items/properties/warn/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs21 === errors;}else {var valid4 = true;}}}}}}}else {validate155.errors = [{instancePath:instancePath+"/data/modules/" + i0,schemaPath:"#/properties/data/properties/modules/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate155.errors = [{instancePath:instancePath+"/data/modules",schemaPath:"#/properties/data/properties/modules/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.cats !== undefined){let data9 = data2.cats;const _errs23 = errors;if(errors === _errs23){if(Array.isArray(data9)){if(data9.length > 20){validate155.errors = [{instancePath:instancePath+"/data/cats",schemaPath:"#/properties/data/properties/cats/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data9.length;for(let i1=0; i1 4000){validate155.errors = [{instancePath:instancePath+"/data/cats/" + i1,schemaPath:"#/properties/data/properties/cats/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate155.errors = [{instancePath:instancePath+"/data/cats/" + i1,schemaPath:"#/properties/data/properties/cats/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs25 === errors;if(!valid5){break;}}}}else {validate155.errors = [{instancePath:instancePath+"/data/cats",schemaPath:"#/properties/data/properties/cats/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs23 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data11 = data2.initialSelection1;const _errs27 = errors;if(errors === _errs27){if(typeof data11 === "string"){if(func2(data11) > 4000){validate155.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate155.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs27 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection2 !== undefined){let data12 = data2.initialSelection2;const _errs29 = errors;if(errors === _errs29){if(typeof data12 === "string"){if(func2(data12) > 4000){validate155.errors = [{instancePath:instancePath+"/data/initialSelection2",schemaPath:"#/properties/data/properties/initialSelection2/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate155.errors = [{instancePath:instancePath+"/data/initialSelection2",schemaPath:"#/properties/data/properties/initialSelection2/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs29 === errors;}else {var valid2 = true;}}}}}}}else {validate155.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate155.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate155.errors = vErrors;return errors === 0;}validate155.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_play_order = validate156;const schema224 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/play-order.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["written","run"],"properties":{"written":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["id","label","lines"],"properties":{"id":{"type":"string","maxLength":4000},"label":{"type":"string","maxLength":4000},"lines":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}},"run":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["src","text","note"],"properties":{"src":{"type":"string","maxLength":4000},"text":{"type":"string","maxLength":4000},"note":{"type":"string","maxLength":4000},"handler":{"type":"boolean"}}}}}}}};function validate156(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/play-order.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate156.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate156.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate156.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate156.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate156.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate156.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate156.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.written === undefined) && (missing1 = "written")) || ((data2.run === undefined) && (missing1 = "run"))){validate156.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "written") || (key2 === "run"))){validate156.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.written !== undefined){let data3 = data2.written;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate156.errors = [{instancePath:instancePath+"/data/written",schemaPath:"#/properties/data/properties/written/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate156.errors = [{instancePath:instancePath+"/data/written/" + i0+"/id",schemaPath:"#/properties/data/properties/written/items/properties/id/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate156.errors = [{instancePath:instancePath+"/data/written/" + i0+"/id",schemaPath:"#/properties/data/properties/written/items/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.label !== undefined){let data6 = data4.label;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate156.errors = [{instancePath:instancePath+"/data/written/" + i0+"/label",schemaPath:"#/properties/data/properties/written/items/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate156.errors = [{instancePath:instancePath+"/data/written/" + i0+"/label",schemaPath:"#/properties/data/properties/written/items/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.lines !== undefined){let data7 = data4.lines;const _errs19 = errors;if(errors === _errs19){if(Array.isArray(data7)){if(data7.length > 20){validate156.errors = [{instancePath:instancePath+"/data/written/" + i0+"/lines",schemaPath:"#/properties/data/properties/written/items/properties/lines/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data7.length;for(let i1=0; i1 4000){validate156.errors = [{instancePath:instancePath+"/data/written/" + i0+"/lines/" + i1,schemaPath:"#/properties/data/properties/written/items/properties/lines/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate156.errors = [{instancePath:instancePath+"/data/written/" + i0+"/lines/" + i1,schemaPath:"#/properties/data/properties/written/items/properties/lines/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs21 === errors;if(!valid5){break;}}}}else {validate156.errors = [{instancePath:instancePath+"/data/written/" + i0+"/lines",schemaPath:"#/properties/data/properties/written/items/properties/lines/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs19 === errors;}else {var valid4 = true;}}}}}}else {validate156.errors = [{instancePath:instancePath+"/data/written/" + i0,schemaPath:"#/properties/data/properties/written/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate156.errors = [{instancePath:instancePath+"/data/written",schemaPath:"#/properties/data/properties/written/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.run !== undefined){let data9 = data2.run;const _errs23 = errors;if(errors === _errs23){if(Array.isArray(data9)){if(data9.length > 20){validate156.errors = [{instancePath:instancePath+"/data/run",schemaPath:"#/properties/data/properties/run/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid6 = true;const len2 = data9.length;for(let i2=0; i2 4000){validate156.errors = [{instancePath:instancePath+"/data/run/" + i2+"/src",schemaPath:"#/properties/data/properties/run/items/properties/src/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate156.errors = [{instancePath:instancePath+"/data/run/" + i2+"/src",schemaPath:"#/properties/data/properties/run/items/properties/src/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs28 === errors;}else {var valid7 = true;}if(valid7){if(data10.text !== undefined){let data12 = data10.text;const _errs30 = errors;if(errors === _errs30){if(typeof data12 === "string"){if(func2(data12) > 4000){validate156.errors = [{instancePath:instancePath+"/data/run/" + i2+"/text",schemaPath:"#/properties/data/properties/run/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate156.errors = [{instancePath:instancePath+"/data/run/" + i2+"/text",schemaPath:"#/properties/data/properties/run/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs30 === errors;}else {var valid7 = true;}if(valid7){if(data10.note !== undefined){let data13 = data10.note;const _errs32 = errors;if(errors === _errs32){if(typeof data13 === "string"){if(func2(data13) > 4000){validate156.errors = [{instancePath:instancePath+"/data/run/" + i2+"/note",schemaPath:"#/properties/data/properties/run/items/properties/note/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate156.errors = [{instancePath:instancePath+"/data/run/" + i2+"/note",schemaPath:"#/properties/data/properties/run/items/properties/note/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs32 === errors;}else {var valid7 = true;}if(valid7){if(data10.handler !== undefined){const _errs34 = errors;if(typeof data10.handler !== "boolean"){validate156.errors = [{instancePath:instancePath+"/data/run/" + i2+"/handler",schemaPath:"#/properties/data/properties/run/items/properties/handler/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid7 = _errs34 === errors;}else {var valid7 = true;}}}}}}}else {validate156.errors = [{instancePath:instancePath+"/data/run/" + i2,schemaPath:"#/properties/data/properties/run/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid6 = _errs25 === errors;if(!valid6){break;}}}}else {validate156.errors = [{instancePath:instancePath+"/data/run",schemaPath:"#/properties/data/properties/run/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs23 === errors;}else {var valid2 = true;}}}}}else {validate156.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate156.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate156.errors = vErrors;return errors === 0;}validate156.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_play_recap = validate157;const schema225 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/play-recap.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["counters","initialSelection1"],"properties":{"counters":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["key","value","tone","text"],"properties":{"key":{"type":"string","maxLength":4000},"value":{"type":"integer"},"tone":{"type":"string","maxLength":4000},"text":{"type":"string","maxLength":4000}}}},"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate157(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/play-recap.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate157.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate157.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate157.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate157.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate157.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate157.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate157.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.counters === undefined) && (missing1 = "counters")) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate157.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "counters") || (key2 === "initialSelection1"))){validate157.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.counters !== undefined){let data3 = data2.counters;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate157.errors = [{instancePath:instancePath+"/data/counters",schemaPath:"#/properties/data/properties/counters/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate157.errors = [{instancePath:instancePath+"/data/counters/" + i0+"/key",schemaPath:"#/properties/data/properties/counters/items/properties/key/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate157.errors = [{instancePath:instancePath+"/data/counters/" + i0+"/key",schemaPath:"#/properties/data/properties/counters/items/properties/key/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.value !== undefined){let data6 = data4.value;const _errs17 = errors;if(!(((typeof data6 == "number") && (!(data6 % 1) && !isNaN(data6))) && (isFinite(data6)))){validate157.errors = [{instancePath:instancePath+"/data/counters/" + i0+"/value",schemaPath:"#/properties/data/properties/counters/items/properties/value/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.tone !== undefined){let data7 = data4.tone;const _errs19 = errors;if(errors === _errs19){if(typeof data7 === "string"){if(func2(data7) > 4000){validate157.errors = [{instancePath:instancePath+"/data/counters/" + i0+"/tone",schemaPath:"#/properties/data/properties/counters/items/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate157.errors = [{instancePath:instancePath+"/data/counters/" + i0+"/tone",schemaPath:"#/properties/data/properties/counters/items/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data4.text !== undefined){let data8 = data4.text;const _errs21 = errors;if(errors === _errs21){if(typeof data8 === "string"){if(func2(data8) > 4000){validate157.errors = [{instancePath:instancePath+"/data/counters/" + i0+"/text",schemaPath:"#/properties/data/properties/counters/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate157.errors = [{instancePath:instancePath+"/data/counters/" + i0+"/text",schemaPath:"#/properties/data/properties/counters/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs21 === errors;}else {var valid4 = true;}}}}}}}else {validate157.errors = [{instancePath:instancePath+"/data/counters/" + i0,schemaPath:"#/properties/data/properties/counters/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate157.errors = [{instancePath:instancePath+"/data/counters",schemaPath:"#/properties/data/properties/counters/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data9 = data2.initialSelection1;const _errs23 = errors;if(errors === _errs23){if(typeof data9 === "string"){if(func2(data9) > 4000){validate157.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate157.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs23 === errors;}else {var valid2 = true;}}}}}else {validate157.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate157.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate157.errors = vErrors;return errors === 0;}validate157.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_precedence_resolver = validate158;const schema226 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/precedence-resolver.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false},"props":{"type":"object","additionalProperties":false,"required":["title","items","fallback"],"properties":{"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000},"items":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["label","detail"],"properties":{"label":{"type":"string","maxLength":4000},"detail":{"type":"string","maxLength":4000},"on":{"type":"boolean"}}}},"fallback":{"type":"object","additionalProperties":false,"required":["label","detail"],"properties":{"label":{"type":"string","maxLength":4000},"detail":{"type":"string","maxLength":4000}}},"note":{"type":"string","maxLength":4000},"winnerLabel":{"type":"string","maxLength":4000}}}}};function validate158(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/precedence-resolver.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate158.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate158.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "props"))){validate158.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate158.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate158.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate158.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate158.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate158.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate158.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.props !== undefined){let data3 = data.props;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){let missing1;if((((data3.title === undefined) && (missing1 = "title")) || ((data3.items === undefined) && (missing1 = "items"))) || ((data3.fallback === undefined) && (missing1 = "fallback"))){validate158.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs12 = errors;for(const key3 in data3){if(!((((((key3 === "title") || (key3 === "sub")) || (key3 === "items")) || (key3 === "fallback")) || (key3 === "note")) || (key3 === "winnerLabel"))){validate158.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs12 === errors){if(data3.title !== undefined){let data4 = data3.title;const _errs13 = errors;if(errors === _errs13){if(typeof data4 === "string"){if(func2(data4) > 4000){validate158.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate158.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs13 === errors;}else {var valid2 = true;}if(valid2){if(data3.sub !== undefined){let data5 = data3.sub;const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate158.errors = [{instancePath:instancePath+"/props/sub",schemaPath:"#/properties/props/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate158.errors = [{instancePath:instancePath+"/props/sub",schemaPath:"#/properties/props/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs15 === errors;}else {var valid2 = true;}if(valid2){if(data3.items !== undefined){let data6 = data3.items;const _errs17 = errors;if(errors === _errs17){if(Array.isArray(data6)){if(data6.length > 20){validate158.errors = [{instancePath:instancePath+"/props/items",schemaPath:"#/properties/props/properties/items/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data6.length;for(let i0=0; i0 4000){validate158.errors = [{instancePath:instancePath+"/props/items/" + i0+"/label",schemaPath:"#/properties/props/properties/items/items/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate158.errors = [{instancePath:instancePath+"/props/items/" + i0+"/label",schemaPath:"#/properties/props/properties/items/items/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs22 === errors;}else {var valid4 = true;}if(valid4){if(data7.detail !== undefined){let data9 = data7.detail;const _errs24 = errors;if(errors === _errs24){if(typeof data9 === "string"){if(func2(data9) > 4000){validate158.errors = [{instancePath:instancePath+"/props/items/" + i0+"/detail",schemaPath:"#/properties/props/properties/items/items/properties/detail/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate158.errors = [{instancePath:instancePath+"/props/items/" + i0+"/detail",schemaPath:"#/properties/props/properties/items/items/properties/detail/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs24 === errors;}else {var valid4 = true;}if(valid4){if(data7.on !== undefined){const _errs26 = errors;if(typeof data7.on !== "boolean"){validate158.errors = [{instancePath:instancePath+"/props/items/" + i0+"/on",schemaPath:"#/properties/props/properties/items/items/properties/on/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs26 === errors;}else {var valid4 = true;}}}}}}else {validate158.errors = [{instancePath:instancePath+"/props/items/" + i0,schemaPath:"#/properties/props/properties/items/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs19 === errors;if(!valid3){break;}}}}else {validate158.errors = [{instancePath:instancePath+"/props/items",schemaPath:"#/properties/props/properties/items/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}if(valid2){if(data3.fallback !== undefined){let data11 = data3.fallback;const _errs28 = errors;if(errors === _errs28){if(data11 && typeof data11 == "object" && !Array.isArray(data11)){let missing3;if(((data11.label === undefined) && (missing3 = "label")) || ((data11.detail === undefined) && (missing3 = "detail"))){validate158.errors = [{instancePath:instancePath+"/props/fallback",schemaPath:"#/properties/props/properties/fallback/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs30 = errors;for(const key5 in data11){if(!((key5 === "label") || (key5 === "detail"))){validate158.errors = [{instancePath:instancePath+"/props/fallback",schemaPath:"#/properties/props/properties/fallback/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs30 === errors){if(data11.label !== undefined){let data12 = data11.label;const _errs31 = errors;if(errors === _errs31){if(typeof data12 === "string"){if(func2(data12) > 4000){validate158.errors = [{instancePath:instancePath+"/props/fallback/label",schemaPath:"#/properties/props/properties/fallback/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate158.errors = [{instancePath:instancePath+"/props/fallback/label",schemaPath:"#/properties/props/properties/fallback/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs31 === errors;}else {var valid5 = true;}if(valid5){if(data11.detail !== undefined){let data13 = data11.detail;const _errs33 = errors;if(errors === _errs33){if(typeof data13 === "string"){if(func2(data13) > 4000){validate158.errors = [{instancePath:instancePath+"/props/fallback/detail",schemaPath:"#/properties/props/properties/fallback/properties/detail/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate158.errors = [{instancePath:instancePath+"/props/fallback/detail",schemaPath:"#/properties/props/properties/fallback/properties/detail/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs33 === errors;}else {var valid5 = true;}}}}}else {validate158.errors = [{instancePath:instancePath+"/props/fallback",schemaPath:"#/properties/props/properties/fallback/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs28 === errors;}else {var valid2 = true;}if(valid2){if(data3.note !== undefined){let data14 = data3.note;const _errs35 = errors;if(errors === _errs35){if(typeof data14 === "string"){if(func2(data14) > 4000){validate158.errors = [{instancePath:instancePath+"/props/note",schemaPath:"#/properties/props/properties/note/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate158.errors = [{instancePath:instancePath+"/props/note",schemaPath:"#/properties/props/properties/note/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs35 === errors;}else {var valid2 = true;}if(valid2){if(data3.winnerLabel !== undefined){let data15 = data3.winnerLabel;const _errs37 = errors;if(errors === _errs37){if(typeof data15 === "string"){if(func2(data15) > 4000){validate158.errors = [{instancePath:instancePath+"/props/winnerLabel",schemaPath:"#/properties/props/properties/winnerLabel/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate158.errors = [{instancePath:instancePath+"/props/winnerLabel",schemaPath:"#/properties/props/properties/winnerLabel/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs37 === errors;}else {var valid2 = true;}}}}}}}}}else {validate158.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs10 === errors;}else {var valid0 = true;}}}}}}else {validate158.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate158.errors = vErrors;return errors === 0;}validate158.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_project_tree = validate159;const schema227 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/project-tree.schema.json","type":"object","additionalProperties":false,"properties":{"props":{"type":"object","additionalProperties":false,"required":["paths"],"properties":{"paths":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"notes":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"locked":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"caption":{"type":"string","maxLength":4000}}}}};function validate159(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/project-tree.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate159.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){const _errs1 = errors;for(const key0 in data){if(!(key0 === "props")){validate159.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.props !== undefined){let data0 = data.props;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){let missing0;if((data0.paths === undefined) && (missing0 = "paths")){validate159.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs4 = errors;for(const key1 in data0){if(!((((key1 === "paths") || (key1 === "notes")) || (key1 === "locked")) || (key1 === "caption"))){validate159.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs4 === errors){if(data0.paths !== undefined){let data1 = data0.paths;const _errs5 = errors;if(errors === _errs5){if(Array.isArray(data1)){if(data1.length > 20){validate159.errors = [{instancePath:instancePath+"/props/paths",schemaPath:"#/properties/props/properties/paths/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid2 = true;const len0 = data1.length;for(let i0=0; i0 4000){validate159.errors = [{instancePath:instancePath+"/props/paths/" + i0,schemaPath:"#/properties/props/properties/paths/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate159.errors = [{instancePath:instancePath+"/props/paths/" + i0,schemaPath:"#/properties/props/properties/paths/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs7 === errors;if(!valid2){break;}}}}else {validate159.errors = [{instancePath:instancePath+"/props/paths",schemaPath:"#/properties/props/properties/paths/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid1 = _errs5 === errors;}else {var valid1 = true;}if(valid1){if(data0.notes !== undefined){let data3 = data0.notes;const _errs9 = errors;if(errors === _errs9){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){if(Object.keys(data3).length > 30){validate159.errors = [{instancePath:instancePath+"/props/notes",schemaPath:"#/properties/props/properties/notes/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key2 in data3){let data4 = data3[key2];const _errs12 = errors;if(errors === _errs12){if(typeof data4 === "string"){if(func2(data4) > 4000){validate159.errors = [{instancePath:instancePath+"/props/notes/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/props/properties/notes/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate159.errors = [{instancePath:instancePath+"/props/notes/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/props/properties/notes/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate159.errors = [{instancePath:instancePath+"/props/notes",schemaPath:"#/properties/props/properties/notes/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid1 = _errs9 === errors;}else {var valid1 = true;}if(valid1){if(data0.locked !== undefined){let data5 = data0.locked;const _errs14 = errors;if(errors === _errs14){if(Array.isArray(data5)){if(data5.length > 20){validate159.errors = [{instancePath:instancePath+"/props/locked",schemaPath:"#/properties/props/properties/locked/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid4 = true;const len1 = data5.length;for(let i1=0; i1 4000){validate159.errors = [{instancePath:instancePath+"/props/locked/" + i1,schemaPath:"#/properties/props/properties/locked/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate159.errors = [{instancePath:instancePath+"/props/locked/" + i1,schemaPath:"#/properties/props/properties/locked/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs16 === errors;if(!valid4){break;}}}}else {validate159.errors = [{instancePath:instancePath+"/props/locked",schemaPath:"#/properties/props/properties/locked/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid1 = _errs14 === errors;}else {var valid1 = true;}if(valid1){if(data0.caption !== undefined){let data7 = data0.caption;const _errs18 = errors;if(errors === _errs18){if(typeof data7 === "string"){if(func2(data7) > 4000){validate159.errors = [{instancePath:instancePath+"/props/caption",schemaPath:"#/properties/props/properties/caption/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate159.errors = [{instancePath:instancePath+"/props/caption",schemaPath:"#/properties/props/properties/caption/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs18 === errors;}else {var valid1 = true;}}}}}}}else {validate159.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}}}}else {validate159.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate159.errors = vErrors;return errors === 0;}validate159.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_range_expander = validate160;const schema228 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/range-expander.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["presets"],"properties":{"presets":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}}};function validate160(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/range-expander.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate160.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate160.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate160.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate160.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate160.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate160.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate160.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.presets === undefined) && (missing1 = "presets")){validate160.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "presets")){validate160.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.presets !== undefined){let data3 = data2.presets;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate160.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate160.errors = [{instancePath:instancePath+"/data/presets/" + i0,schemaPath:"#/properties/data/properties/presets/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate160.errors = [{instancePath:instancePath+"/data/presets/" + i0,schemaPath:"#/properties/data/properties/presets/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate160.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate160.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate160.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate160.errors = vErrors;return errors === 0;}validate160.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_readiness_checklist = validate161;const schema229 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/readiness-checklist.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":60,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","maxProperties":30,"additionalProperties":{"anyOf":[{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["label","tone"],"properties":{"label":{"type":"string","maxLength":4000},"tone":{"type":"string","maxLength":4000}}}},{"type":"object","additionalProperties":false,"properties":{"1":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"2":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"3":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"4":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"5":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"6":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"7":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"8":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"9":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"10":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"11":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"lab_deploy":{"type":"object","additionalProperties":false,"required":["path","label"],"properties":{"path":{"type":"string","maxLength":4000},"label":{"type":"string","maxLength":4000}}},"lab_playbooks":{"type":"object","additionalProperties":false,"required":["path","label"],"properties":{"path":{"type":"string","maxLength":4000},"label":{"type":"string","maxLength":4000}}},"lab_admin":{"type":"object","additionalProperties":false,"required":["path","label"],"properties":{"path":{"type":"string","maxLength":4000},"label":{"type":"string","maxLength":4000}}},"lab_roles":{"type":"object","additionalProperties":false,"required":["path","label"],"properties":{"path":{"type":"string","maxLength":4000},"label":{"type":"string","maxLength":4000}}}}}]}}}};function validate161(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/readiness-checklist.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate161.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate161.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate161.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 60){validate161.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 60},message:"must NOT have more than 60 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate161.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate161.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate161.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){if(Object.keys(data2).length > 30){validate161.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key2 in data2){let data3 = data2[key2];const _errs10 = errors;const _errs11 = errors;let valid3 = false;const _errs12 = errors;if(errors === _errs12){if(Array.isArray(data3)){if(data3.length > 20){const err0 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/anyOf/0/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}else {var valid4 = true;const len0 = data3.length;for(let i0=0; i0 4000){const err3 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/label",schemaPath:"#/properties/data/additionalProperties/anyOf/0/items/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}else {const err4 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/label",schemaPath:"#/properties/data/additionalProperties/anyOf/0/items/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}var valid5 = _errs17 === errors;}else {var valid5 = true;}if(valid5){if(data4.tone !== undefined){let data6 = data4.tone;const _errs19 = errors;if(errors === _errs19){if(typeof data6 === "string"){if(func2(data6) > 4000){const err5 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/tone",schemaPath:"#/properties/data/additionalProperties/anyOf/0/items/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}else {const err6 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0+"/tone",schemaPath:"#/properties/data/additionalProperties/anyOf/0/items/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}var valid5 = _errs19 === errors;}else {var valid5 = true;}}}}}else {const err7 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/data/additionalProperties/anyOf/0/items/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}var valid4 = _errs14 === errors;if(!valid4){break;}}}}else {const err8 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/anyOf/0/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}var _valid0 = _errs12 === errors;valid3 = valid3 || _valid0;const _errs21 = errors;if(errors === _errs21){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){const _errs23 = errors;for(const key4 in data3){if(!(func1.call(schema229.properties.data.additionalProperties.anyOf[1].properties, key4))){const err9 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/anyOf/1/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;break;}}if(_errs23 === errors){if(data3["1"] !== undefined){let data7 = data3["1"];const _errs24 = errors;if(errors === _errs24){if(Array.isArray(data7)){if(data7.length > 20){const err10 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/1",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}else {var valid7 = true;const len1 = data7.length;for(let i1=0; i1 4000){const err11 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/1/" + i1,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/1/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}}else {const err12 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/1/" + i1,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/1/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}}var valid7 = _errs26 === errors;if(!valid7){break;}}}}else {const err13 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/1",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}}var valid6 = _errs24 === errors;}else {var valid6 = true;}if(valid6){if(data3["2"] !== undefined){let data9 = data3["2"];const _errs28 = errors;if(errors === _errs28){if(Array.isArray(data9)){if(data9.length > 20){const err14 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/2",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/2/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}else {var valid8 = true;const len2 = data9.length;for(let i2=0; i2 4000){const err15 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/2/" + i2,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/2/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}else {const err16 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/2/" + i2,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/2/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}var valid8 = _errs30 === errors;if(!valid8){break;}}}}else {const err17 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/2",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/2/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}var valid6 = _errs28 === errors;}else {var valid6 = true;}if(valid6){if(data3["3"] !== undefined){let data11 = data3["3"];const _errs32 = errors;if(errors === _errs32){if(Array.isArray(data11)){if(data11.length > 20){const err18 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/3",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/3/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}else {var valid9 = true;const len3 = data11.length;for(let i3=0; i3 4000){const err19 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/3/" + i3,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/3/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}else {const err20 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/3/" + i3,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/3/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}var valid9 = _errs34 === errors;if(!valid9){break;}}}}else {const err21 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/3",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/3/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}}var valid6 = _errs32 === errors;}else {var valid6 = true;}if(valid6){if(data3["4"] !== undefined){let data13 = data3["4"];const _errs36 = errors;if(errors === _errs36){if(Array.isArray(data13)){if(data13.length > 20){const err22 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/4",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/4/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}else {var valid10 = true;const len4 = data13.length;for(let i4=0; i4 4000){const err23 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/4/" + i4,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/4/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}}else {const err24 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/4/" + i4,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/4/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}var valid10 = _errs38 === errors;if(!valid10){break;}}}}else {const err25 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/4",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/4/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}var valid6 = _errs36 === errors;}else {var valid6 = true;}if(valid6){if(data3["5"] !== undefined){let data15 = data3["5"];const _errs40 = errors;if(errors === _errs40){if(Array.isArray(data15)){if(data15.length > 20){const err26 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/5",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/5/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}else {var valid11 = true;const len5 = data15.length;for(let i5=0; i5 4000){const err27 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/5/" + i5,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/5/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}else {const err28 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/5/" + i5,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/5/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}var valid11 = _errs42 === errors;if(!valid11){break;}}}}else {const err29 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/5",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/5/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}}var valid6 = _errs40 === errors;}else {var valid6 = true;}if(valid6){if(data3["6"] !== undefined){let data17 = data3["6"];const _errs44 = errors;if(errors === _errs44){if(Array.isArray(data17)){if(data17.length > 20){const err30 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/6",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/6/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}else {var valid12 = true;const len6 = data17.length;for(let i6=0; i6 4000){const err31 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/6/" + i6,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/6/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}}else {const err32 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/6/" + i6,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/6/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}var valid12 = _errs46 === errors;if(!valid12){break;}}}}else {const err33 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/6",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/6/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}var valid6 = _errs44 === errors;}else {var valid6 = true;}if(valid6){if(data3["7"] !== undefined){let data19 = data3["7"];const _errs48 = errors;if(errors === _errs48){if(Array.isArray(data19)){if(data19.length > 20){const err34 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/7",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/7/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}else {var valid13 = true;const len7 = data19.length;for(let i7=0; i7 4000){const err35 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/7/" + i7,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/7/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}}else {const err36 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/7/" + i7,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/7/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}var valid13 = _errs50 === errors;if(!valid13){break;}}}}else {const err37 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/7",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/7/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}var valid6 = _errs48 === errors;}else {var valid6 = true;}if(valid6){if(data3["8"] !== undefined){let data21 = data3["8"];const _errs52 = errors;if(errors === _errs52){if(Array.isArray(data21)){if(data21.length > 20){const err38 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/8",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/8/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}else {var valid14 = true;const len8 = data21.length;for(let i8=0; i8 4000){const err39 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/8/" + i8,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/8/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}else {const err40 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/8/" + i8,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/8/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}var valid14 = _errs54 === errors;if(!valid14){break;}}}}else {const err41 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/8",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/8/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}}var valid6 = _errs52 === errors;}else {var valid6 = true;}if(valid6){if(data3["9"] !== undefined){let data23 = data3["9"];const _errs56 = errors;if(errors === _errs56){if(Array.isArray(data23)){if(data23.length > 20){const err42 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/9",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/9/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}else {var valid15 = true;const len9 = data23.length;for(let i9=0; i9 4000){const err43 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/9/" + i9,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/9/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}}else {const err44 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/9/" + i9,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/9/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}}var valid15 = _errs58 === errors;if(!valid15){break;}}}}else {const err45 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/9",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/9/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}}var valid6 = _errs56 === errors;}else {var valid6 = true;}if(valid6){if(data3["10"] !== undefined){let data25 = data3["10"];const _errs60 = errors;if(errors === _errs60){if(Array.isArray(data25)){if(data25.length > 20){const err46 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/10",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/10/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}else {var valid16 = true;const len10 = data25.length;for(let i10=0; i10 4000){const err47 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/10/" + i10,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/10/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}}else {const err48 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/10/" + i10,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/10/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}}var valid16 = _errs62 === errors;if(!valid16){break;}}}}else {const err49 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/10",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/10/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err49];}else {vErrors.push(err49);}errors++;}}var valid6 = _errs60 === errors;}else {var valid6 = true;}if(valid6){if(data3["11"] !== undefined){let data27 = data3["11"];const _errs64 = errors;if(errors === _errs64){if(Array.isArray(data27)){if(data27.length > 20){const err50 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/11",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/11/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err50];}else {vErrors.push(err50);}errors++;}else {var valid17 = true;const len11 = data27.length;for(let i11=0; i11 4000){const err51 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/11/" + i11,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/11/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err51];}else {vErrors.push(err51);}errors++;}}else {const err52 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/11/" + i11,schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/11/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err52];}else {vErrors.push(err52);}errors++;}}var valid17 = _errs66 === errors;if(!valid17){break;}}}}else {const err53 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/11",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/11/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err53];}else {vErrors.push(err53);}errors++;}}var valid6 = _errs64 === errors;}else {var valid6 = true;}if(valid6){if(data3.lab_deploy !== undefined){let data29 = data3.lab_deploy;const _errs68 = errors;if(errors === _errs68){if(data29 && typeof data29 == "object" && !Array.isArray(data29)){let missing2;if(((data29.path === undefined) && (missing2 = "path")) || ((data29.label === undefined) && (missing2 = "label"))){const err54 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_deploy",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_deploy/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"};if(vErrors === null){vErrors = [err54];}else {vErrors.push(err54);}errors++;}else {const _errs70 = errors;for(const key5 in data29){if(!((key5 === "path") || (key5 === "label"))){const err55 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_deploy",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_deploy/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err55];}else {vErrors.push(err55);}errors++;break;}}if(_errs70 === errors){if(data29.path !== undefined){let data30 = data29.path;const _errs71 = errors;if(errors === _errs71){if(typeof data30 === "string"){if(func2(data30) > 4000){const err56 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_deploy/path",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_deploy/properties/path/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err56];}else {vErrors.push(err56);}errors++;}}else {const err57 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_deploy/path",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_deploy/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err57];}else {vErrors.push(err57);}errors++;}}var valid18 = _errs71 === errors;}else {var valid18 = true;}if(valid18){if(data29.label !== undefined){let data31 = data29.label;const _errs73 = errors;if(errors === _errs73){if(typeof data31 === "string"){if(func2(data31) > 4000){const err58 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_deploy/label",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_deploy/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err58];}else {vErrors.push(err58);}errors++;}}else {const err59 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_deploy/label",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_deploy/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err59];}else {vErrors.push(err59);}errors++;}}var valid18 = _errs73 === errors;}else {var valid18 = true;}}}}}else {const err60 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_deploy",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_deploy/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err60];}else {vErrors.push(err60);}errors++;}}var valid6 = _errs68 === errors;}else {var valid6 = true;}if(valid6){if(data3.lab_playbooks !== undefined){let data32 = data3.lab_playbooks;const _errs75 = errors;if(errors === _errs75){if(data32 && typeof data32 == "object" && !Array.isArray(data32)){let missing3;if(((data32.path === undefined) && (missing3 = "path")) || ((data32.label === undefined) && (missing3 = "label"))){const err61 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_playbooks",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_playbooks/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"};if(vErrors === null){vErrors = [err61];}else {vErrors.push(err61);}errors++;}else {const _errs77 = errors;for(const key6 in data32){if(!((key6 === "path") || (key6 === "label"))){const err62 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_playbooks",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_playbooks/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err62];}else {vErrors.push(err62);}errors++;break;}}if(_errs77 === errors){if(data32.path !== undefined){let data33 = data32.path;const _errs78 = errors;if(errors === _errs78){if(typeof data33 === "string"){if(func2(data33) > 4000){const err63 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_playbooks/path",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_playbooks/properties/path/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err63];}else {vErrors.push(err63);}errors++;}}else {const err64 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_playbooks/path",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_playbooks/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err64];}else {vErrors.push(err64);}errors++;}}var valid19 = _errs78 === errors;}else {var valid19 = true;}if(valid19){if(data32.label !== undefined){let data34 = data32.label;const _errs80 = errors;if(errors === _errs80){if(typeof data34 === "string"){if(func2(data34) > 4000){const err65 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_playbooks/label",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_playbooks/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err65];}else {vErrors.push(err65);}errors++;}}else {const err66 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_playbooks/label",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_playbooks/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err66];}else {vErrors.push(err66);}errors++;}}var valid19 = _errs80 === errors;}else {var valid19 = true;}}}}}else {const err67 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_playbooks",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_playbooks/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err67];}else {vErrors.push(err67);}errors++;}}var valid6 = _errs75 === errors;}else {var valid6 = true;}if(valid6){if(data3.lab_admin !== undefined){let data35 = data3.lab_admin;const _errs82 = errors;if(errors === _errs82){if(data35 && typeof data35 == "object" && !Array.isArray(data35)){let missing4;if(((data35.path === undefined) && (missing4 = "path")) || ((data35.label === undefined) && (missing4 = "label"))){const err68 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_admin",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_admin/required",keyword:"required",params:{missingProperty: missing4},message:"must have required property '"+missing4+"'"};if(vErrors === null){vErrors = [err68];}else {vErrors.push(err68);}errors++;}else {const _errs84 = errors;for(const key7 in data35){if(!((key7 === "path") || (key7 === "label"))){const err69 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_admin",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_admin/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key7},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err69];}else {vErrors.push(err69);}errors++;break;}}if(_errs84 === errors){if(data35.path !== undefined){let data36 = data35.path;const _errs85 = errors;if(errors === _errs85){if(typeof data36 === "string"){if(func2(data36) > 4000){const err70 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_admin/path",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_admin/properties/path/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err70];}else {vErrors.push(err70);}errors++;}}else {const err71 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_admin/path",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_admin/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err71];}else {vErrors.push(err71);}errors++;}}var valid20 = _errs85 === errors;}else {var valid20 = true;}if(valid20){if(data35.label !== undefined){let data37 = data35.label;const _errs87 = errors;if(errors === _errs87){if(typeof data37 === "string"){if(func2(data37) > 4000){const err72 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_admin/label",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_admin/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err72];}else {vErrors.push(err72);}errors++;}}else {const err73 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_admin/label",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_admin/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err73];}else {vErrors.push(err73);}errors++;}}var valid20 = _errs87 === errors;}else {var valid20 = true;}}}}}else {const err74 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_admin",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_admin/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err74];}else {vErrors.push(err74);}errors++;}}var valid6 = _errs82 === errors;}else {var valid6 = true;}if(valid6){if(data3.lab_roles !== undefined){let data38 = data3.lab_roles;const _errs89 = errors;if(errors === _errs89){if(data38 && typeof data38 == "object" && !Array.isArray(data38)){let missing5;if(((data38.path === undefined) && (missing5 = "path")) || ((data38.label === undefined) && (missing5 = "label"))){const err75 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_roles",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_roles/required",keyword:"required",params:{missingProperty: missing5},message:"must have required property '"+missing5+"'"};if(vErrors === null){vErrors = [err75];}else {vErrors.push(err75);}errors++;}else {const _errs91 = errors;for(const key8 in data38){if(!((key8 === "path") || (key8 === "label"))){const err76 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_roles",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_roles/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key8},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err76];}else {vErrors.push(err76);}errors++;break;}}if(_errs91 === errors){if(data38.path !== undefined){let data39 = data38.path;const _errs92 = errors;if(errors === _errs92){if(typeof data39 === "string"){if(func2(data39) > 4000){const err77 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_roles/path",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_roles/properties/path/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err77];}else {vErrors.push(err77);}errors++;}}else {const err78 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_roles/path",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_roles/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err78];}else {vErrors.push(err78);}errors++;}}var valid21 = _errs92 === errors;}else {var valid21 = true;}if(valid21){if(data38.label !== undefined){let data40 = data38.label;const _errs94 = errors;if(errors === _errs94){if(typeof data40 === "string"){if(func2(data40) > 4000){const err79 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_roles/label",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_roles/properties/label/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err79];}else {vErrors.push(err79);}errors++;}}else {const err80 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_roles/label",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_roles/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err80];}else {vErrors.push(err80);}errors++;}}var valid21 = _errs94 === errors;}else {var valid21 = true;}}}}}else {const err81 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/lab_roles",schemaPath:"#/properties/data/additionalProperties/anyOf/1/properties/lab_roles/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err81];}else {vErrors.push(err81);}errors++;}}var valid6 = _errs89 === errors;}else {var valid6 = true;}}}}}}}}}}}}}}}}}else {const err82 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/anyOf/1/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err82];}else {vErrors.push(err82);}errors++;}}var _valid0 = _errs21 === errors;valid3 = valid3 || _valid0;if(!valid3){const err83 = {instancePath:instancePath+"/data/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/additionalProperties/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err83];}else {vErrors.push(err83);}errors++;validate161.errors = vErrors;return false;}else {errors = _errs11;if(vErrors !== null){if(_errs11){vErrors.length = _errs11;}else {vErrors = null;}}}var valid2 = _errs10 === errors;if(!valid2){break;}}}}else {validate161.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate161.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate161.errors = vErrors;return errors === 0;}validate161.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_reuse_simulator = validate162;const schema230 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/reuse-simulator.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":96,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["tasks","initialSelection1","initialSelection2"],"properties":{"tasks":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"initialSelection1":{"type":"string","maxLength":4000},"initialSelection2":{"type":"string","maxLength":4000}}}}};function validate162(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/reuse-simulator.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate162.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate162.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate162.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 96){validate162.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 96},message:"must NOT have more than 96 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate162.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate162.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate162.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((((data2.tasks === undefined) && (missing1 = "tasks")) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))) || ((data2.initialSelection2 === undefined) && (missing1 = "initialSelection2"))){validate162.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(((key2 === "tasks") || (key2 === "initialSelection1")) || (key2 === "initialSelection2"))){validate162.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.tasks !== undefined){let data3 = data2.tasks;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate162.errors = [{instancePath:instancePath+"/data/tasks",schemaPath:"#/properties/data/properties/tasks/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate162.errors = [{instancePath:instancePath+"/data/tasks/" + i0,schemaPath:"#/properties/data/properties/tasks/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate162.errors = [{instancePath:instancePath+"/data/tasks/" + i0,schemaPath:"#/properties/data/properties/tasks/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate162.errors = [{instancePath:instancePath+"/data/tasks",schemaPath:"#/properties/data/properties/tasks/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data5 = data2.initialSelection1;const _errs14 = errors;if(errors === _errs14){if(typeof data5 === "string"){if(func2(data5) > 4000){validate162.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate162.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs14 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection2 !== undefined){let data6 = data2.initialSelection2;const _errs16 = errors;if(errors === _errs16){if(typeof data6 === "string"){if(func2(data6) > 4000){validate162.errors = [{instancePath:instancePath+"/data/initialSelection2",schemaPath:"#/properties/data/properties/initialSelection2/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate162.errors = [{instancePath:instancePath+"/data/initialSelection2",schemaPath:"#/properties/data/properties/initialSelection2/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs16 === errors;}else {var valid2 = true;}}}}}}else {validate162.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate162.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate162.errors = vErrors;return errors === 0;}validate162.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_role_anatomy = validate163;const schema231 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/role-anatomy.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","additionalProperties":false,"required":["widgetLabel"],"properties":{"widgetLabel":{"type":"string","maxLength":4000}}},"data":{"type":"object","additionalProperties":false,"required":["files","initialSelection1"],"properties":{"files":{"type":"object","maxProperties":30,"additionalProperties":{"type":"object","additionalProperties":false,"required":["what","code"],"properties":{"what":{"type":"string","maxLength":4000},"code":{"type":"string","maxLength":4000}}}},"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate163(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/role-anatomy.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate163.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate163.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate163.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){let missing1;if((data0.widgetLabel === undefined) && (missing1 = "widgetLabel")){validate163.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs4 = errors;for(const key1 in data0){if(!(key1 === "widgetLabel")){validate163.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs4 === errors){if(data0.widgetLabel !== undefined){let data1 = data0.widgetLabel;const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate163.errors = [{instancePath:instancePath+"/text/widgetLabel",schemaPath:"#/properties/text/properties/widgetLabel/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate163.errors = [{instancePath:instancePath+"/text/widgetLabel",schemaPath:"#/properties/text/properties/widgetLabel/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}}}else {validate163.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing2;if(((data2.files === undefined) && (missing2 = "files")) || ((data2.initialSelection1 === undefined) && (missing2 = "initialSelection1"))){validate163.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "files") || (key2 === "initialSelection1"))){validate163.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.files !== undefined){let data3 = data2.files;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){if(Object.keys(data3).length > 30){validate163.errors = [{instancePath:instancePath+"/data/files",schemaPath:"#/properties/data/properties/files/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data3){let data4 = data3[key3];const _errs13 = errors;if(errors === _errs13){if(data4 && typeof data4 == "object" && !Array.isArray(data4)){let missing3;if(((data4.what === undefined) && (missing3 = "what")) || ((data4.code === undefined) && (missing3 = "code"))){validate163.errors = [{instancePath:instancePath+"/data/files/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/files/additionalProperties/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs15 = errors;for(const key4 in data4){if(!((key4 === "what") || (key4 === "code"))){validate163.errors = [{instancePath:instancePath+"/data/files/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/files/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs15 === errors){if(data4.what !== undefined){let data5 = data4.what;const _errs16 = errors;if(errors === _errs16){if(typeof data5 === "string"){if(func2(data5) > 4000){validate163.errors = [{instancePath:instancePath+"/data/files/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/what",schemaPath:"#/properties/data/properties/files/additionalProperties/properties/what/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate163.errors = [{instancePath:instancePath+"/data/files/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/what",schemaPath:"#/properties/data/properties/files/additionalProperties/properties/what/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs16 === errors;}else {var valid4 = true;}if(valid4){if(data4.code !== undefined){let data6 = data4.code;const _errs18 = errors;if(errors === _errs18){if(typeof data6 === "string"){if(func2(data6) > 4000){validate163.errors = [{instancePath:instancePath+"/data/files/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/code",schemaPath:"#/properties/data/properties/files/additionalProperties/properties/code/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate163.errors = [{instancePath:instancePath+"/data/files/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/code",schemaPath:"#/properties/data/properties/files/additionalProperties/properties/code/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs18 === errors;}else {var valid4 = true;}}}}}else {validate163.errors = [{instancePath:instancePath+"/data/files/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/files/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs13 === errors;if(!valid3){break;}}}}else {validate163.errors = [{instancePath:instancePath+"/data/files",schemaPath:"#/properties/data/properties/files/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data7 = data2.initialSelection1;const _errs20 = errors;if(errors === _errs20){if(typeof data7 === "string"){if(func2(data7) > 4000){validate163.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate163.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs20 === errors;}else {var valid2 = true;}}}}}else {validate163.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate163.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate163.errors = vErrors;return errors === 0;}validate163.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_role_var_resolver = validate164;const schema232 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/role-var-resolver.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["sources"],"properties":{"sources":{"type":"array","maxItems":20,"items":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}}}}}}};function validate164(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/role-var-resolver.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate164.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate164.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate164.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate164.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate164.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate164.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate164.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.sources === undefined) && (missing1 = "sources")){validate164.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "sources")){validate164.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.sources !== undefined){let data3 = data2.sources;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate164.errors = [{instancePath:instancePath+"/data/sources",schemaPath:"#/properties/data/properties/sources/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 30){validate164.errors = [{instancePath:instancePath+"/data/sources/" + i0,schemaPath:"#/properties/data/properties/sources/items/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data4){let data5 = data4[key3];const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate164.errors = [{instancePath:instancePath+"/data/sources/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/sources/items/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate164.errors = [{instancePath:instancePath+"/data/sources/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/sources/items/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;if(!valid4){break;}}}}else {validate164.errors = [{instancePath:instancePath+"/data/sources/" + i0,schemaPath:"#/properties/data/properties/sources/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate164.errors = [{instancePath:instancePath+"/data/sources",schemaPath:"#/properties/data/properties/sources/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate164.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate164.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate164.errors = vErrors;return errors === 0;}validate164.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_run_stages = validate165;const schema233 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/run-stages.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["stages","initialSelection1"],"properties":{"stages":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["id","title","sub","tone","signs","tools"],"properties":{"id":{"type":"string","maxLength":4000},"title":{"type":"string","maxLength":4000},"sub":{"type":"string","maxLength":4000},"tone":{"type":"string","maxLength":4000},"signs":{"type":"string","maxLength":4000},"tools":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}},"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate165(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/run-stages.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate165.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate165.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate165.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate165.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate165.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate165.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate165.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.stages === undefined) && (missing1 = "stages")) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate165.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "stages") || (key2 === "initialSelection1"))){validate165.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.stages !== undefined){let data3 = data2.stages;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate165.errors = [{instancePath:instancePath+"/data/stages",schemaPath:"#/properties/data/properties/stages/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate165.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/id",schemaPath:"#/properties/data/properties/stages/items/properties/id/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate165.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/id",schemaPath:"#/properties/data/properties/stages/items/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.title !== undefined){let data6 = data4.title;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate165.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/title",schemaPath:"#/properties/data/properties/stages/items/properties/title/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate165.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/title",schemaPath:"#/properties/data/properties/stages/items/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.sub !== undefined){let data7 = data4.sub;const _errs19 = errors;if(errors === _errs19){if(typeof data7 === "string"){if(func2(data7) > 4000){validate165.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/sub",schemaPath:"#/properties/data/properties/stages/items/properties/sub/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate165.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/sub",schemaPath:"#/properties/data/properties/stages/items/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data4.tone !== undefined){let data8 = data4.tone;const _errs21 = errors;if(errors === _errs21){if(typeof data8 === "string"){if(func2(data8) > 4000){validate165.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/tone",schemaPath:"#/properties/data/properties/stages/items/properties/tone/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate165.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/tone",schemaPath:"#/properties/data/properties/stages/items/properties/tone/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs21 === errors;}else {var valid4 = true;}if(valid4){if(data4.signs !== undefined){let data9 = data4.signs;const _errs23 = errors;if(errors === _errs23){if(typeof data9 === "string"){if(func2(data9) > 4000){validate165.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/signs",schemaPath:"#/properties/data/properties/stages/items/properties/signs/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate165.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/signs",schemaPath:"#/properties/data/properties/stages/items/properties/signs/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs23 === errors;}else {var valid4 = true;}if(valid4){if(data4.tools !== undefined){let data10 = data4.tools;const _errs25 = errors;if(errors === _errs25){if(Array.isArray(data10)){if(data10.length > 20){validate165.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/tools",schemaPath:"#/properties/data/properties/stages/items/properties/tools/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data10.length;for(let i1=0; i1 4000){validate165.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/tools/" + i1,schemaPath:"#/properties/data/properties/stages/items/properties/tools/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate165.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/tools/" + i1,schemaPath:"#/properties/data/properties/stages/items/properties/tools/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs27 === errors;if(!valid5){break;}}}}else {validate165.errors = [{instancePath:instancePath+"/data/stages/" + i0+"/tools",schemaPath:"#/properties/data/properties/stages/items/properties/tools/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs25 === errors;}else {var valid4 = true;}}}}}}}}}else {validate165.errors = [{instancePath:instancePath+"/data/stages/" + i0,schemaPath:"#/properties/data/properties/stages/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate165.errors = [{instancePath:instancePath+"/data/stages",schemaPath:"#/properties/data/properties/stages/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data12 = data2.initialSelection1;const _errs29 = errors;if(errors === _errs29){if(typeof data12 === "string"){if(func2(data12) > 4000){validate165.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate165.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs29 === errors;}else {var valid2 = true;}}}}}else {validate165.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate165.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate165.errors = vErrors;return errors === 0;}validate165.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_shell_practice = validate166;const schema234 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/shell-practice.schema.json","type":"object","additionalProperties":false,"required":["text","data","props"],"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false},"props":{"type":"object","additionalProperties":false,"required":["commands"],"properties":{"title":{"type":"string","maxLength":200},"prompt":{"type":"string","maxLength":80},"commands":{"type":"array","minItems":1,"maxItems":80,"items":{"type":"object","additionalProperties":false,"required":["cmd"],"properties":{"cmd":{"type":"string","minLength":1,"maxLength":300},"out":{"type":"string","maxLength":6000}}}},"tasks":{"type":"array","maxItems":12,"items":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":300},"commands":{"type":"array","maxItems":10,"items":{"type":"string","minLength":1,"maxLength":300}},"typed":{"type":"array","maxItems":10,"items":{"type":"string","minLength":1,"maxLength":60}},"via":{"enum":["search","last-argument"]}},"anyOf":[{"required":["commands"]},{"required":["typed"]},{"required":["via"]}]}},"words":{"type":"array","maxItems":100,"items":{"type":"string","minLength":1,"maxLength":120}}}}}};function validate166(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/shell-practice.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate166.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))) || ((data.props === undefined) && (missing0 = "props"))){validate166.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "text") || (key0 === "data")) || (key0 === "props"))){validate166.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate166.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate166.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}else {validate166.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate166.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate166.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.props !== undefined){let data3 = data.props;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){let missing1;if((data3.commands === undefined) && (missing1 = "commands")){validate166.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs12 = errors;for(const key3 in data3){if(!(((((key3 === "title") || (key3 === "prompt")) || (key3 === "commands")) || (key3 === "tasks")) || (key3 === "words"))){validate166.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs12 === errors){if(data3.title !== undefined){let data4 = data3.title;const _errs13 = errors;if(errors === _errs13){if(typeof data4 === "string"){if(func2(data4) > 200){validate166.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}}else {validate166.errors = [{instancePath:instancePath+"/props/title",schemaPath:"#/properties/props/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs13 === errors;}else {var valid2 = true;}if(valid2){if(data3.prompt !== undefined){let data5 = data3.prompt;const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 80){validate166.errors = [{instancePath:instancePath+"/props/prompt",schemaPath:"#/properties/props/properties/prompt/maxLength",keyword:"maxLength",params:{limit: 80},message:"must NOT have more than 80 characters"}];return false;}}else {validate166.errors = [{instancePath:instancePath+"/props/prompt",schemaPath:"#/properties/props/properties/prompt/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs15 === errors;}else {var valid2 = true;}if(valid2){if(data3.commands !== undefined){let data6 = data3.commands;const _errs17 = errors;if(errors === _errs17){if(Array.isArray(data6)){if(data6.length > 80){validate166.errors = [{instancePath:instancePath+"/props/commands",schemaPath:"#/properties/props/properties/commands/maxItems",keyword:"maxItems",params:{limit: 80},message:"must NOT have more than 80 items"}];return false;}else {if(data6.length < 1){validate166.errors = [{instancePath:instancePath+"/props/commands",schemaPath:"#/properties/props/properties/commands/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid3 = true;const len0 = data6.length;for(let i0=0; i0 300){validate166.errors = [{instancePath:instancePath+"/props/commands/" + i0+"/cmd",schemaPath:"#/properties/props/properties/commands/items/properties/cmd/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}else {if(func2(data8) < 1){validate166.errors = [{instancePath:instancePath+"/props/commands/" + i0+"/cmd",schemaPath:"#/properties/props/properties/commands/items/properties/cmd/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate166.errors = [{instancePath:instancePath+"/props/commands/" + i0+"/cmd",schemaPath:"#/properties/props/properties/commands/items/properties/cmd/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs22 === errors;}else {var valid4 = true;}if(valid4){if(data7.out !== undefined){let data9 = data7.out;const _errs24 = errors;if(errors === _errs24){if(typeof data9 === "string"){if(func2(data9) > 6000){validate166.errors = [{instancePath:instancePath+"/props/commands/" + i0+"/out",schemaPath:"#/properties/props/properties/commands/items/properties/out/maxLength",keyword:"maxLength",params:{limit: 6000},message:"must NOT have more than 6000 characters"}];return false;}}else {validate166.errors = [{instancePath:instancePath+"/props/commands/" + i0+"/out",schemaPath:"#/properties/props/properties/commands/items/properties/out/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs24 === errors;}else {var valid4 = true;}}}}}else {validate166.errors = [{instancePath:instancePath+"/props/commands/" + i0,schemaPath:"#/properties/props/properties/commands/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs19 === errors;if(!valid3){break;}}}}}else {validate166.errors = [{instancePath:instancePath+"/props/commands",schemaPath:"#/properties/props/properties/commands/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs17 === errors;}else {var valid2 = true;}if(valid2){if(data3.tasks !== undefined){let data10 = data3.tasks;const _errs26 = errors;if(errors === _errs26){if(Array.isArray(data10)){if(data10.length > 12){validate166.errors = [{instancePath:instancePath+"/props/tasks",schemaPath:"#/properties/props/properties/tasks/maxItems",keyword:"maxItems",params:{limit: 12},message:"must NOT have more than 12 items"}];return false;}else {var valid5 = true;const len1 = data10.length;for(let i1=0; i1 300){validate166.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/text",schemaPath:"#/properties/props/properties/tasks/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}else {if(func2(data12) < 1){validate166.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/text",schemaPath:"#/properties/props/properties/tasks/items/properties/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate166.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/text",schemaPath:"#/properties/props/properties/tasks/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs35 === errors;}else {var valid7 = true;}if(valid7){if(data11.commands !== undefined){let data13 = data11.commands;const _errs37 = errors;if(errors === _errs37){if(Array.isArray(data13)){if(data13.length > 10){validate166.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/commands",schemaPath:"#/properties/props/properties/tasks/items/properties/commands/maxItems",keyword:"maxItems",params:{limit: 10},message:"must NOT have more than 10 items"}];return false;}else {var valid8 = true;const len2 = data13.length;for(let i2=0; i2 300){validate166.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/commands/" + i2,schemaPath:"#/properties/props/properties/tasks/items/properties/commands/items/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}else {if(func2(data14) < 1){validate166.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/commands/" + i2,schemaPath:"#/properties/props/properties/tasks/items/properties/commands/items/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate166.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/commands/" + i2,schemaPath:"#/properties/props/properties/tasks/items/properties/commands/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid8 = _errs39 === errors;if(!valid8){break;}}}}else {validate166.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/commands",schemaPath:"#/properties/props/properties/tasks/items/properties/commands/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid7 = _errs37 === errors;}else {var valid7 = true;}if(valid7){if(data11.typed !== undefined){let data15 = data11.typed;const _errs41 = errors;if(errors === _errs41){if(Array.isArray(data15)){if(data15.length > 10){validate166.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/typed",schemaPath:"#/properties/props/properties/tasks/items/properties/typed/maxItems",keyword:"maxItems",params:{limit: 10},message:"must NOT have more than 10 items"}];return false;}else {var valid9 = true;const len3 = data15.length;for(let i3=0; i3 60){validate166.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/typed/" + i3,schemaPath:"#/properties/props/properties/tasks/items/properties/typed/items/maxLength",keyword:"maxLength",params:{limit: 60},message:"must NOT have more than 60 characters"}];return false;}else {if(func2(data16) < 1){validate166.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/typed/" + i3,schemaPath:"#/properties/props/properties/tasks/items/properties/typed/items/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate166.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/typed/" + i3,schemaPath:"#/properties/props/properties/tasks/items/properties/typed/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid9 = _errs43 === errors;if(!valid9){break;}}}}else {validate166.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/typed",schemaPath:"#/properties/props/properties/tasks/items/properties/typed/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid7 = _errs41 === errors;}else {var valid7 = true;}if(valid7){if(data11.via !== undefined){let data17 = data11.via;const _errs45 = errors;if(!((data17 === "search") || (data17 === "last-argument"))){validate166.errors = [{instancePath:instancePath+"/props/tasks/" + i1+"/via",schemaPath:"#/properties/props/properties/tasks/items/properties/via/enum",keyword:"enum",params:{allowedValues: schema234.properties.props.properties.tasks.items.properties.via.enum},message:"must be equal to one of the allowed values"}];return false;}var valid7 = _errs45 === errors;}else {var valid7 = true;}}}}}}}else {validate166.errors = [{instancePath:instancePath+"/props/tasks/" + i1,schemaPath:"#/properties/props/properties/tasks/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs28 === errors;if(!valid5){break;}}}}else {validate166.errors = [{instancePath:instancePath+"/props/tasks",schemaPath:"#/properties/props/properties/tasks/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs26 === errors;}else {var valid2 = true;}if(valid2){if(data3.words !== undefined){let data18 = data3.words;const _errs46 = errors;if(errors === _errs46){if(Array.isArray(data18)){if(data18.length > 100){validate166.errors = [{instancePath:instancePath+"/props/words",schemaPath:"#/properties/props/properties/words/maxItems",keyword:"maxItems",params:{limit: 100},message:"must NOT have more than 100 items"}];return false;}else {var valid10 = true;const len4 = data18.length;for(let i4=0; i4 120){validate166.errors = [{instancePath:instancePath+"/props/words/" + i4,schemaPath:"#/properties/props/properties/words/items/maxLength",keyword:"maxLength",params:{limit: 120},message:"must NOT have more than 120 characters"}];return false;}else {if(func2(data19) < 1){validate166.errors = [{instancePath:instancePath+"/props/words/" + i4,schemaPath:"#/properties/props/properties/words/items/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate166.errors = [{instancePath:instancePath+"/props/words/" + i4,schemaPath:"#/properties/props/properties/words/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid10 = _errs48 === errors;if(!valid10){break;}}}}else {validate166.errors = [{instancePath:instancePath+"/props/words",schemaPath:"#/properties/props/properties/words/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs46 === errors;}else {var valid2 = true;}}}}}}}}else {validate166.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs10 === errors;}else {var valid0 = true;}}}}}}else {validate166.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate166.errors = vErrors;return errors === 0;}validate166.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_snapshot_chain = validate167;const schema235 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/snapshot-chain.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":39,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["names"],"properties":{"names":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}}};function validate167(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/snapshot-chain.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate167.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate167.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate167.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 39){validate167.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 39},message:"must NOT have more than 39 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate167.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate167.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate167.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.names === undefined) && (missing1 = "names")){validate167.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "names")){validate167.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.names !== undefined){let data3 = data2.names;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate167.errors = [{instancePath:instancePath+"/data/names",schemaPath:"#/properties/data/properties/names/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate167.errors = [{instancePath:instancePath+"/data/names/" + i0,schemaPath:"#/properties/data/properties/names/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate167.errors = [{instancePath:instancePath+"/data/names/" + i0,schemaPath:"#/properties/data/properties/names/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate167.errors = [{instancePath:instancePath+"/data/names",schemaPath:"#/properties/data/properties/names/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate167.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate167.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate167.errors = vErrors;return errors === 0;}validate167.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_stat_explorer = validate168;const schema236 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/stat-explorer.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","additionalProperties":false,"required":["template"],"properties":{"template":{"type":"string","maxLength":4000}}},"data":{"type":"object","additionalProperties":false,"required":["statSample"],"properties":{"statSample":{"type":"object","additionalProperties":false,"required":["changed","failed","stat"],"properties":{"changed":{"type":"boolean"},"failed":{"type":"boolean"},"stat":{"type":"object","additionalProperties":false,"required":["exists","path","isreg","isdir","islnk","mode","uid","gid","pw_name","gr_name","size","mtime","checksum","mimetype","readable","writeable","executable"],"properties":{"exists":{"type":"boolean"},"path":{"type":"string","maxLength":4000},"isreg":{"type":"boolean"},"isdir":{"type":"boolean"},"islnk":{"type":"boolean"},"mode":{"type":"string","maxLength":4000},"uid":{"type":"integer"},"gid":{"type":"integer"},"pw_name":{"type":"string","maxLength":4000},"gr_name":{"type":"string","maxLength":4000},"size":{"type":"integer"},"mtime":{"type":"number"},"checksum":{"type":"string","maxLength":4000},"mimetype":{"type":"string","maxLength":4000},"readable":{"type":"boolean"},"writeable":{"type":"boolean"},"executable":{"type":"boolean"}}}}}}},"props":{"type":"object","additionalProperties":false,"required":["name"],"properties":{"name":{"type":"string","maxLength":4000}}},"dependencies":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate168(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/stat-explorer.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate168.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate168.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((((key0 === "text") || (key0 === "data")) || (key0 === "props")) || (key0 === "dependencies"))){validate168.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){let missing1;if((data0.template === undefined) && (missing1 = "template")){validate168.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs4 = errors;for(const key1 in data0){if(!(key1 === "template")){validate168.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs4 === errors){if(data0.template !== undefined){let data1 = data0.template;const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate168.errors = [{instancePath:instancePath+"/text/template",schemaPath:"#/properties/text/properties/template/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate168.errors = [{instancePath:instancePath+"/text/template",schemaPath:"#/properties/text/properties/template/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}}}else {validate168.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing2;if((data2.statSample === undefined) && (missing2 = "statSample")){validate168.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "statSample")){validate168.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.statSample !== undefined){let data3 = data2.statSample;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){let missing3;if((((data3.changed === undefined) && (missing3 = "changed")) || ((data3.failed === undefined) && (missing3 = "failed"))) || ((data3.stat === undefined) && (missing3 = "stat"))){validate168.errors = [{instancePath:instancePath+"/data/statSample",schemaPath:"#/properties/data/properties/statSample/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs12 = errors;for(const key3 in data3){if(!(((key3 === "changed") || (key3 === "failed")) || (key3 === "stat"))){validate168.errors = [{instancePath:instancePath+"/data/statSample",schemaPath:"#/properties/data/properties/statSample/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs12 === errors){if(data3.changed !== undefined){const _errs13 = errors;if(typeof data3.changed !== "boolean"){validate168.errors = [{instancePath:instancePath+"/data/statSample/changed",schemaPath:"#/properties/data/properties/statSample/properties/changed/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid3 = _errs13 === errors;}else {var valid3 = true;}if(valid3){if(data3.failed !== undefined){const _errs15 = errors;if(typeof data3.failed !== "boolean"){validate168.errors = [{instancePath:instancePath+"/data/statSample/failed",schemaPath:"#/properties/data/properties/statSample/properties/failed/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid3 = _errs15 === errors;}else {var valid3 = true;}if(valid3){if(data3.stat !== undefined){let data6 = data3.stat;const _errs17 = errors;if(errors === _errs17){if(data6 && typeof data6 == "object" && !Array.isArray(data6)){let missing4;if((((((((((((((((((data6.exists === undefined) && (missing4 = "exists")) || ((data6.path === undefined) && (missing4 = "path"))) || ((data6.isreg === undefined) && (missing4 = "isreg"))) || ((data6.isdir === undefined) && (missing4 = "isdir"))) || ((data6.islnk === undefined) && (missing4 = "islnk"))) || ((data6.mode === undefined) && (missing4 = "mode"))) || ((data6.uid === undefined) && (missing4 = "uid"))) || ((data6.gid === undefined) && (missing4 = "gid"))) || ((data6.pw_name === undefined) && (missing4 = "pw_name"))) || ((data6.gr_name === undefined) && (missing4 = "gr_name"))) || ((data6.size === undefined) && (missing4 = "size"))) || ((data6.mtime === undefined) && (missing4 = "mtime"))) || ((data6.checksum === undefined) && (missing4 = "checksum"))) || ((data6.mimetype === undefined) && (missing4 = "mimetype"))) || ((data6.readable === undefined) && (missing4 = "readable"))) || ((data6.writeable === undefined) && (missing4 = "writeable"))) || ((data6.executable === undefined) && (missing4 = "executable"))){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat",schemaPath:"#/properties/data/properties/statSample/properties/stat/required",keyword:"required",params:{missingProperty: missing4},message:"must have required property '"+missing4+"'"}];return false;}else {const _errs19 = errors;for(const key4 in data6){if(!(func1.call(schema236.properties.data.properties.statSample.properties.stat.properties, key4))){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat",schemaPath:"#/properties/data/properties/statSample/properties/stat/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs19 === errors){if(data6.exists !== undefined){const _errs20 = errors;if(typeof data6.exists !== "boolean"){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/exists",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/exists/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs20 === errors;}else {var valid4 = true;}if(valid4){if(data6.path !== undefined){let data8 = data6.path;const _errs22 = errors;if(errors === _errs22){if(typeof data8 === "string"){if(func2(data8) > 4000){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/path",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/path/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/path",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/path/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs22 === errors;}else {var valid4 = true;}if(valid4){if(data6.isreg !== undefined){const _errs24 = errors;if(typeof data6.isreg !== "boolean"){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/isreg",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/isreg/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs24 === errors;}else {var valid4 = true;}if(valid4){if(data6.isdir !== undefined){const _errs26 = errors;if(typeof data6.isdir !== "boolean"){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/isdir",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/isdir/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs26 === errors;}else {var valid4 = true;}if(valid4){if(data6.islnk !== undefined){const _errs28 = errors;if(typeof data6.islnk !== "boolean"){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/islnk",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/islnk/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs28 === errors;}else {var valid4 = true;}if(valid4){if(data6.mode !== undefined){let data12 = data6.mode;const _errs30 = errors;if(errors === _errs30){if(typeof data12 === "string"){if(func2(data12) > 4000){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/mode",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/mode/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/mode",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/mode/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs30 === errors;}else {var valid4 = true;}if(valid4){if(data6.uid !== undefined){let data13 = data6.uid;const _errs32 = errors;if(!(((typeof data13 == "number") && (!(data13 % 1) && !isNaN(data13))) && (isFinite(data13)))){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/uid",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/uid/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs32 === errors;}else {var valid4 = true;}if(valid4){if(data6.gid !== undefined){let data14 = data6.gid;const _errs34 = errors;if(!(((typeof data14 == "number") && (!(data14 % 1) && !isNaN(data14))) && (isFinite(data14)))){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/gid",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/gid/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs34 === errors;}else {var valid4 = true;}if(valid4){if(data6.pw_name !== undefined){let data15 = data6.pw_name;const _errs36 = errors;if(errors === _errs36){if(typeof data15 === "string"){if(func2(data15) > 4000){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/pw_name",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/pw_name/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/pw_name",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/pw_name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs36 === errors;}else {var valid4 = true;}if(valid4){if(data6.gr_name !== undefined){let data16 = data6.gr_name;const _errs38 = errors;if(errors === _errs38){if(typeof data16 === "string"){if(func2(data16) > 4000){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/gr_name",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/gr_name/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/gr_name",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/gr_name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs38 === errors;}else {var valid4 = true;}if(valid4){if(data6.size !== undefined){let data17 = data6.size;const _errs40 = errors;if(!(((typeof data17 == "number") && (!(data17 % 1) && !isNaN(data17))) && (isFinite(data17)))){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/size",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/size/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs40 === errors;}else {var valid4 = true;}if(valid4){if(data6.mtime !== undefined){let data18 = data6.mtime;const _errs42 = errors;if(!((typeof data18 == "number") && (isFinite(data18)))){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/mtime",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/mtime/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}var valid4 = _errs42 === errors;}else {var valid4 = true;}if(valid4){if(data6.checksum !== undefined){let data19 = data6.checksum;const _errs44 = errors;if(errors === _errs44){if(typeof data19 === "string"){if(func2(data19) > 4000){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/checksum",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/checksum/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/checksum",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/checksum/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs44 === errors;}else {var valid4 = true;}if(valid4){if(data6.mimetype !== undefined){let data20 = data6.mimetype;const _errs46 = errors;if(errors === _errs46){if(typeof data20 === "string"){if(func2(data20) > 4000){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/mimetype",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/mimetype/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/mimetype",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/mimetype/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs46 === errors;}else {var valid4 = true;}if(valid4){if(data6.readable !== undefined){const _errs48 = errors;if(typeof data6.readable !== "boolean"){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/readable",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/readable/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs48 === errors;}else {var valid4 = true;}if(valid4){if(data6.writeable !== undefined){const _errs50 = errors;if(typeof data6.writeable !== "boolean"){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/writeable",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/writeable/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs50 === errors;}else {var valid4 = true;}if(valid4){if(data6.executable !== undefined){const _errs52 = errors;if(typeof data6.executable !== "boolean"){validate168.errors = [{instancePath:instancePath+"/data/statSample/stat/executable",schemaPath:"#/properties/data/properties/statSample/properties/stat/properties/executable/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid4 = _errs52 === errors;}else {var valid4 = true;}}}}}}}}}}}}}}}}}}}}else {validate168.errors = [{instancePath:instancePath+"/data/statSample/stat",schemaPath:"#/properties/data/properties/statSample/properties/stat/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs17 === errors;}else {var valid3 = true;}}}}}}else {validate168.errors = [{instancePath:instancePath+"/data/statSample",schemaPath:"#/properties/data/properties/statSample/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}}}}}else {validate168.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.props !== undefined){let data24 = data.props;const _errs54 = errors;if(errors === _errs54){if(data24 && typeof data24 == "object" && !Array.isArray(data24)){let missing5;if((data24.name === undefined) && (missing5 = "name")){validate168.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/required",keyword:"required",params:{missingProperty: missing5},message:"must have required property '"+missing5+"'"}];return false;}else {const _errs56 = errors;for(const key5 in data24){if(!(key5 === "name")){validate168.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs56 === errors){if(data24.name !== undefined){let data25 = data24.name;const _errs57 = errors;if(errors === _errs57){if(typeof data25 === "string"){if(func2(data25) > 4000){validate168.errors = [{instancePath:instancePath+"/props/name",schemaPath:"#/properties/props/properties/name/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate168.errors = [{instancePath:instancePath+"/props/name",schemaPath:"#/properties/props/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}}}else {validate168.errors = [{instancePath:instancePath+"/props",schemaPath:"#/properties/props/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs54 === errors;}else {var valid0 = true;}if(valid0){if(data.dependencies !== undefined){let data26 = data.dependencies;const _errs59 = errors;if(errors === _errs59){if(data26 && typeof data26 == "object" && !Array.isArray(data26)){for(const key6 in data26){const _errs61 = errors;if(typeof key6 === "string"){if(!pattern90.test(key6)){const err0 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key6};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid6 = _errs61 === errors;if(!valid6){const err1 = {instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/propertyNames",keyword:"propertyNames",params:{propertyName: key6},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate168.errors = vErrors;return false;break;}}if(valid6){for(const key7 in data26){let data27 = data26[key7];const _errs63 = errors;if(errors === _errs63){if(data27 && typeof data27 == "object" && !Array.isArray(data27)){const _errs65 = errors;for(const key8 in data27){if(!((key8 === "text") || (key8 === "data"))){validate168.errors = [{instancePath:instancePath+"/dependencies/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key8},message:"must NOT have additional properties"}];return false;break;}}if(_errs65 === errors){if(data27.text !== undefined){let data28 = data27.text;const _errs66 = errors;if(errors === _errs66){if(data28 && typeof data28 == "object" && !Array.isArray(data28)){for(const key9 in data28){let data29 = data28[key9];const _errs69 = errors;if(errors === _errs69){if(typeof data29 === "string"){if(func2(data29) > 4000){validate168.errors = [{instancePath:instancePath+"/dependencies/" + key7.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key9.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate168.errors = [{instancePath:instancePath+"/dependencies/" + key7.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key9.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid9 = _errs69 === errors;if(!valid9){break;}}}else {validate168.errors = [{instancePath:instancePath+"/dependencies/" + key7.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/dependencies/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid8 = _errs66 === errors;}else {var valid8 = true;}if(valid8){if(data27.data !== undefined){let data30 = data27.data;const _errs71 = errors;if(!(data30 && typeof data30 == "object" && !Array.isArray(data30))){validate168.errors = [{instancePath:instancePath+"/dependencies/" + key7.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/dependencies/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid8 = _errs71 === errors;}else {var valid8 = true;}}}}else {validate168.errors = [{instancePath:instancePath+"/dependencies/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/dependencies/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid7 = _errs63 === errors;if(!valid7){break;}}}}else {validate168.errors = [{instancePath:instancePath+"/dependencies",schemaPath:"#/properties/dependencies/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs59 === errors;}else {var valid0 = true;}}}}}}}else {validate168.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate168.errors = vErrors;return errors === 0;}validate168.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_task_outcome = validate169;const schema237 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/task-outcome.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":102,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["outputs"],"properties":{"outputs":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}}};function validate169(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/task-outcome.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate169.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate169.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate169.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 102){validate169.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 102},message:"must NOT have more than 102 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate169.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate169.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate169.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.outputs === undefined) && (missing1 = "outputs")){validate169.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "outputs")){validate169.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.outputs !== undefined){let data3 = data2.outputs;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate169.errors = [{instancePath:instancePath+"/data/outputs",schemaPath:"#/properties/data/properties/outputs/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate169.errors = [{instancePath:instancePath+"/data/outputs/" + i0,schemaPath:"#/properties/data/properties/outputs/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate169.errors = [{instancePath:instancePath+"/data/outputs/" + i0,schemaPath:"#/properties/data/properties/outputs/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate169.errors = [{instancePath:instancePath+"/data/outputs",schemaPath:"#/properties/data/properties/outputs/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate169.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate169.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate169.errors = vErrors;return errors === 0;}validate169.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_template_playground = validate170;const schema238 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/template-playground.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":84,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["hosts","presets","initialSelection1","initialSelection2"],"properties":{"hosts":{"type":"object","maxProperties":30,"additionalProperties":{"type":"object","additionalProperties":false,"required":["hostname","ip","mem","cpus"],"properties":{"hostname":{"type":"string","maxLength":4000},"ip":{"type":"string","maxLength":4000},"mem":{"type":"integer"},"cpus":{"type":"integer"}}}},"presets":{"type":"array","maxItems":20,"items":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}}},"initialSelection1":{"type":"string","maxLength":4000},"initialSelection2":{"type":"string","maxLength":4000}}}}};function validate170(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/template-playground.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate170.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate170.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate170.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 84){validate170.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 84},message:"must NOT have more than 84 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate170.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate170.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate170.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((((data2.hosts === undefined) && (missing1 = "hosts")) || ((data2.presets === undefined) && (missing1 = "presets"))) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))) || ((data2.initialSelection2 === undefined) && (missing1 = "initialSelection2"))){validate170.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((((key2 === "hosts") || (key2 === "presets")) || (key2 === "initialSelection1")) || (key2 === "initialSelection2"))){validate170.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.hosts !== undefined){let data3 = data2.hosts;const _errs10 = errors;if(errors === _errs10){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){if(Object.keys(data3).length > 30){validate170.errors = [{instancePath:instancePath+"/data/hosts",schemaPath:"#/properties/data/properties/hosts/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data3){let data4 = data3[key3];const _errs13 = errors;if(errors === _errs13){if(data4 && typeof data4 == "object" && !Array.isArray(data4)){let missing2;if(((((data4.hostname === undefined) && (missing2 = "hostname")) || ((data4.ip === undefined) && (missing2 = "ip"))) || ((data4.mem === undefined) && (missing2 = "mem"))) || ((data4.cpus === undefined) && (missing2 = "cpus"))){validate170.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/hosts/additionalProperties/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs15 = errors;for(const key4 in data4){if(!((((key4 === "hostname") || (key4 === "ip")) || (key4 === "mem")) || (key4 === "cpus"))){validate170.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/hosts/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs15 === errors){if(data4.hostname !== undefined){let data5 = data4.hostname;const _errs16 = errors;if(errors === _errs16){if(typeof data5 === "string"){if(func2(data5) > 4000){validate170.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/hostname",schemaPath:"#/properties/data/properties/hosts/additionalProperties/properties/hostname/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate170.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/hostname",schemaPath:"#/properties/data/properties/hosts/additionalProperties/properties/hostname/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs16 === errors;}else {var valid4 = true;}if(valid4){if(data4.ip !== undefined){let data6 = data4.ip;const _errs18 = errors;if(errors === _errs18){if(typeof data6 === "string"){if(func2(data6) > 4000){validate170.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/ip",schemaPath:"#/properties/data/properties/hosts/additionalProperties/properties/ip/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate170.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/ip",schemaPath:"#/properties/data/properties/hosts/additionalProperties/properties/ip/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs18 === errors;}else {var valid4 = true;}if(valid4){if(data4.mem !== undefined){let data7 = data4.mem;const _errs20 = errors;if(!(((typeof data7 == "number") && (!(data7 % 1) && !isNaN(data7))) && (isFinite(data7)))){validate170.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/mem",schemaPath:"#/properties/data/properties/hosts/additionalProperties/properties/mem/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs20 === errors;}else {var valid4 = true;}if(valid4){if(data4.cpus !== undefined){let data8 = data4.cpus;const _errs22 = errors;if(!(((typeof data8 == "number") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))){validate170.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/cpus",schemaPath:"#/properties/data/properties/hosts/additionalProperties/properties/cpus/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}var valid4 = _errs22 === errors;}else {var valid4 = true;}}}}}}}else {validate170.errors = [{instancePath:instancePath+"/data/hosts/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/hosts/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs13 === errors;if(!valid3){break;}}}}else {validate170.errors = [{instancePath:instancePath+"/data/hosts",schemaPath:"#/properties/data/properties/hosts/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.presets !== undefined){let data9 = data2.presets;const _errs24 = errors;if(errors === _errs24){if(Array.isArray(data9)){if(data9.length > 20){validate170.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len0 = data9.length;for(let i0=0; i0 30){validate170.errors = [{instancePath:instancePath+"/data/presets/" + i0,schemaPath:"#/properties/data/properties/presets/items/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key5 in data10){let data11 = data10[key5];const _errs29 = errors;if(errors === _errs29){if(typeof data11 === "string"){if(func2(data11) > 4000){validate170.errors = [{instancePath:instancePath+"/data/presets/" + i0+"/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/presets/items/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate170.errors = [{instancePath:instancePath+"/data/presets/" + i0+"/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/presets/items/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs29 === errors;if(!valid6){break;}}}}else {validate170.errors = [{instancePath:instancePath+"/data/presets/" + i0,schemaPath:"#/properties/data/properties/presets/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs26 === errors;if(!valid5){break;}}}}else {validate170.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs24 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data12 = data2.initialSelection1;const _errs31 = errors;if(errors === _errs31){if(typeof data12 === "string"){if(func2(data12) > 4000){validate170.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate170.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs31 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection2 !== undefined){let data13 = data2.initialSelection2;const _errs33 = errors;if(errors === _errs33){if(typeof data13 === "string"){if(func2(data13) > 4000){validate170.errors = [{instancePath:instancePath+"/data/initialSelection2",schemaPath:"#/properties/data/properties/initialSelection2/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate170.errors = [{instancePath:instancePath+"/data/initialSelection2",schemaPath:"#/properties/data/properties/initialSelection2/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs33 === errors;}else {var valid2 = true;}}}}}}}else {validate170.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate170.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate170.errors = vErrors;return errors === 0;}validate170.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_variable_name_checker = validate171;const schema239 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/variable-name-checker.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["presets"],"properties":{"presets":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}}};function validate171(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/variable-name-checker.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate171.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate171.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate171.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate171.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate171.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate171.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate171.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.presets === undefined) && (missing1 = "presets")){validate171.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "presets")){validate171.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.presets !== undefined){let data3 = data2.presets;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate171.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate171.errors = [{instancePath:instancePath+"/data/presets/" + i0,schemaPath:"#/properties/data/properties/presets/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate171.errors = [{instancePath:instancePath+"/data/presets/" + i0,schemaPath:"#/properties/data/properties/presets/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate171.errors = [{instancePath:instancePath+"/data/presets",schemaPath:"#/properties/data/properties/presets/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate171.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate171.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate171.errors = vErrors;return errors === 0;}validate171.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_variable_precedence = validate172;const schema240 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/variable-precedence.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":36,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["levels"],"properties":{"levels":{"type":"array","maxItems":20,"items":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}}}}}}};function validate172(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/variable-precedence.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate172.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate172.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate172.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 36){validate172.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 36},message:"must NOT have more than 36 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate172.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate172.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate172.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.levels === undefined) && (missing1 = "levels")){validate172.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "levels")){validate172.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.levels !== undefined){let data3 = data2.levels;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate172.errors = [{instancePath:instancePath+"/data/levels",schemaPath:"#/properties/data/properties/levels/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 30){validate172.errors = [{instancePath:instancePath+"/data/levels/" + i0,schemaPath:"#/properties/data/properties/levels/items/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key3 in data4){let data5 = data4[key3];const _errs15 = errors;if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate172.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/levels/items/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate172.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/data/properties/levels/items/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;if(!valid4){break;}}}}else {validate172.errors = [{instancePath:instancePath+"/data/levels/" + i0,schemaPath:"#/properties/data/properties/levels/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate172.errors = [{instancePath:instancePath+"/data/levels",schemaPath:"#/properties/data/properties/levels/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate172.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate172.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate172.errors = vErrors;return errors === 0;}validate172.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_variable_substitution = validate173;const schema241 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/variable-substitution.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":54,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false}}};function validate173(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/variable-substitution.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate173.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate173.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate173.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 54){validate173.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 54},message:"must NOT have more than 54 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate173.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate173.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate173.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key2 in data2){validate173.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}else {validate173.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate173.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate173.errors = vErrors;return errors === 0;}validate173.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_vault_commands = validate174;const schema242 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/vault-commands.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["commands"],"properties":{"commands":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["cmd","run","before","after","prompts","text"],"properties":{"cmd":{"type":"string","maxLength":4000},"run":{"type":"string","maxLength":4000},"before":{"anyOf":[{"type":"null"},{"type":"string","maxLength":4000}]},"after":{"type":"string","maxLength":4000},"prompts":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"text":{"type":"string","maxLength":4000}}}}}}}};function validate174(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/vault-commands.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate174.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate174.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate174.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate174.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate174.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate174.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate174.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.commands === undefined) && (missing1 = "commands")){validate174.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "commands")){validate174.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.commands !== undefined){let data3 = data2.commands;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate174.errors = [{instancePath:instancePath+"/data/commands",schemaPath:"#/properties/data/properties/commands/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate174.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/cmd",schemaPath:"#/properties/data/properties/commands/items/properties/cmd/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate174.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/cmd",schemaPath:"#/properties/data/properties/commands/items/properties/cmd/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.run !== undefined){let data6 = data4.run;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate174.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/run",schemaPath:"#/properties/data/properties/commands/items/properties/run/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate174.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/run",schemaPath:"#/properties/data/properties/commands/items/properties/run/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.before !== undefined){let data7 = data4.before;const _errs19 = errors;const _errs20 = errors;let valid5 = false;const _errs21 = errors;if(data7 !== null){const err0 = {instancePath:instancePath+"/data/commands/" + i0+"/before",schemaPath:"#/properties/data/properties/commands/items/properties/before/anyOf/0/type",keyword:"type",params:{type: "null"},message:"must be null"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}var _valid0 = _errs21 === errors;valid5 = valid5 || _valid0;const _errs23 = errors;if(errors === _errs23){if(typeof data7 === "string"){if(func2(data7) > 4000){const err1 = {instancePath:instancePath+"/data/commands/" + i0+"/before",schemaPath:"#/properties/data/properties/commands/items/properties/before/anyOf/1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}else {const err2 = {instancePath:instancePath+"/data/commands/" + i0+"/before",schemaPath:"#/properties/data/properties/commands/items/properties/before/anyOf/1/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}var _valid0 = _errs23 === errors;valid5 = valid5 || _valid0;if(!valid5){const err3 = {instancePath:instancePath+"/data/commands/" + i0+"/before",schemaPath:"#/properties/data/properties/commands/items/properties/before/anyOf",keyword:"anyOf",params:{},message:"must match a schema in anyOf"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;validate174.errors = vErrors;return false;}else {errors = _errs20;if(vErrors !== null){if(_errs20){vErrors.length = _errs20;}else {vErrors = null;}}}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data4.after !== undefined){let data8 = data4.after;const _errs25 = errors;if(errors === _errs25){if(typeof data8 === "string"){if(func2(data8) > 4000){validate174.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/after",schemaPath:"#/properties/data/properties/commands/items/properties/after/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate174.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/after",schemaPath:"#/properties/data/properties/commands/items/properties/after/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs25 === errors;}else {var valid4 = true;}if(valid4){if(data4.prompts !== undefined){let data9 = data4.prompts;const _errs27 = errors;if(errors === _errs27){if(Array.isArray(data9)){if(data9.length > 20){validate174.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/prompts",schemaPath:"#/properties/data/properties/commands/items/properties/prompts/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid6 = true;const len1 = data9.length;for(let i1=0; i1 4000){validate174.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/prompts/" + i1,schemaPath:"#/properties/data/properties/commands/items/properties/prompts/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate174.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/prompts/" + i1,schemaPath:"#/properties/data/properties/commands/items/properties/prompts/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs29 === errors;if(!valid6){break;}}}}else {validate174.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/prompts",schemaPath:"#/properties/data/properties/commands/items/properties/prompts/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs27 === errors;}else {var valid4 = true;}if(valid4){if(data4.text !== undefined){let data11 = data4.text;const _errs31 = errors;if(errors === _errs31){if(typeof data11 === "string"){if(func2(data11) > 4000){validate174.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/text",schemaPath:"#/properties/data/properties/commands/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate174.errors = [{instancePath:instancePath+"/data/commands/" + i0+"/text",schemaPath:"#/properties/data/properties/commands/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs31 === errors;}else {var valid4 = true;}}}}}}}}}else {validate174.errors = [{instancePath:instancePath+"/data/commands/" + i0,schemaPath:"#/properties/data/properties/commands/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate174.errors = [{instancePath:instancePath+"/data/commands",schemaPath:"#/properties/data/properties/commands/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate174.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate174.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate174.errors = vErrors;return errors === 0;}validate174.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_verbosity = validate175;const schema243 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/verbosity.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["levels"],"properties":{"levels":{"type":"array","maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["flag","text","lines"],"properties":{"flag":{"type":"string","maxLength":4000},"text":{"type":"string","maxLength":4000},"lines":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}}}}}}}}};function validate175(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/verbosity.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate175.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate175.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate175.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate175.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate175.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate175.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate175.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if((data2.levels === undefined) && (missing1 = "levels")){validate175.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!(key2 === "levels")){validate175.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.levels !== undefined){let data3 = data2.levels;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate175.errors = [{instancePath:instancePath+"/data/levels",schemaPath:"#/properties/data/properties/levels/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate175.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/flag",schemaPath:"#/properties/data/properties/levels/items/properties/flag/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate175.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/flag",schemaPath:"#/properties/data/properties/levels/items/properties/flag/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;}else {var valid4 = true;}if(valid4){if(data4.text !== undefined){let data6 = data4.text;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 4000){validate175.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/text",schemaPath:"#/properties/data/properties/levels/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate175.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/text",schemaPath:"#/properties/data/properties/levels/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data4.lines !== undefined){let data7 = data4.lines;const _errs19 = errors;if(errors === _errs19){if(Array.isArray(data7)){if(data7.length > 20){validate175.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/lines",schemaPath:"#/properties/data/properties/levels/items/properties/lines/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid5 = true;const len1 = data7.length;for(let i1=0; i1 4000){validate175.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/lines/" + i1,schemaPath:"#/properties/data/properties/levels/items/properties/lines/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate175.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/lines/" + i1,schemaPath:"#/properties/data/properties/levels/items/properties/lines/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs21 === errors;if(!valid5){break;}}}}else {validate175.errors = [{instancePath:instancePath+"/data/levels/" + i0+"/lines",schemaPath:"#/properties/data/properties/levels/items/properties/lines/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid4 = _errs19 === errors;}else {var valid4 = true;}}}}}}else {validate175.errors = [{instancePath:instancePath+"/data/levels/" + i0,schemaPath:"#/properties/data/properties/levels/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate175.errors = [{instancePath:instancePath+"/data/levels",schemaPath:"#/properties/data/properties/levels/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate175.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate175.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate175.errors = vErrors;return errors === 0;}validate175.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validate_yaml_multiline = validate176;const schema244 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/kits/yaml-multiline.schema.json","type":"object","additionalProperties":false,"required":["text","data"],"properties":{"text":{"type":"object","maxProperties":30,"additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object","additionalProperties":false,"required":["lines","initialSelection1"],"properties":{"lines":{"type":"array","maxItems":20,"items":{"type":"string","maxLength":4000}},"initialSelection1":{"type":"string","maxLength":4000}}}}};function validate176(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/kits/yaml-multiline.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate176.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.text === undefined) && (missing0 = "text")) || ((data.data === undefined) && (missing0 = "data"))){validate176.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "text") || (key0 === "data"))){validate176.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.text !== undefined){let data0 = data.text;const _errs2 = errors;if(errors === _errs2){if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(Object.keys(data0).length > 30){validate176.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data0){let data1 = data0[key1];const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 4000){validate176.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate176.errors = [{instancePath:instancePath+"/text/" + key1.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}else {validate176.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data2 = data.data;const _errs7 = errors;if(errors === _errs7){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.lines === undefined) && (missing1 = "lines")) || ((data2.initialSelection1 === undefined) && (missing1 = "initialSelection1"))){validate176.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs9 = errors;for(const key2 in data2){if(!((key2 === "lines") || (key2 === "initialSelection1"))){validate176.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs9 === errors){if(data2.lines !== undefined){let data3 = data2.lines;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data3)){if(data3.length > 20){validate176.errors = [{instancePath:instancePath+"/data/lines",schemaPath:"#/properties/data/properties/lines/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid3 = true;const len0 = data3.length;for(let i0=0; i0 4000){validate176.errors = [{instancePath:instancePath+"/data/lines/" + i0,schemaPath:"#/properties/data/properties/lines/items/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate176.errors = [{instancePath:instancePath+"/data/lines/" + i0,schemaPath:"#/properties/data/properties/lines/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs12 === errors;if(!valid3){break;}}}}else {validate176.errors = [{instancePath:instancePath+"/data/lines",schemaPath:"#/properties/data/properties/lines/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.initialSelection1 !== undefined){let data5 = data2.initialSelection1;const _errs14 = errors;if(errors === _errs14){if(typeof data5 === "string"){if(func2(data5) > 4000){validate176.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate176.errors = [{instancePath:instancePath+"/data/initialSelection1",schemaPath:"#/properties/data/properties/initialSelection1/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs14 === errors;}else {var valid2 = true;}}}}}else {validate176.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}else {validate176.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate176.errors = vErrors;return errors === 0;}validate176.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; /** Data validator by kit tag name. */ export const KIT_VALIDATORS = { 'admin-module-finder': validate_admin_module_finder, diff --git a/packages/schema/generated/validators.js b/packages/schema/generated/validators.js index 2d21e82..3cfda43 100644 --- a/packages/schema/generated/validators.js +++ b/packages/schema/generated/validators.js @@ -4,6 +4,6 @@ import runtime0Module from 'ajv/dist/runtime/ucs2length.js'; const runtime0 = runtime0Module.default ?? runtime0Module; import runtime1Module from 'ajv/dist/runtime/equal.js'; const runtime1 = runtime1Module.default ?? runtime1Module; -export const validateSite = validate20;const schema31 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/bundle/site.schema.json","type":"object","additionalProperties":false,"required":["apiVersion","generatedAt","site","programs"],"properties":{"apiVersion":{"$ref":"../common.schema.json#/$defs/apiVersion"},"generatedAt":{"type":"string","pattern":"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:\\.[0-9]+)?Z$"},"site":{"type":"object","additionalProperties":false,"required":["name","tagline"],"properties":{"name":{"$ref":"../common.schema.json#/$defs/shortText"},"tagline":{"$ref":"../common.schema.json#/$defs/shortText"},"description":{"$ref":"../common.schema.json#/$defs/text"},"repo":{"$ref":"../common.schema.json#/$defs/url"},"links":{"type":"array"},"legal":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"},"theme":{"$ref":"../source/theme.schema.json"},"home":{"$ref":"#/$defs/hashedUrl"}}},"ui":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":1000}}}},"programs":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["id","title","label","platform","status","summary","manifest"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/id"},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"label":{"$ref":"../common.schema.json#/$defs/shortText"},"tagline":{"$ref":"../common.schema.json#/$defs/shortText"},"summary":{"$ref":"../common.schema.json#/$defs/text"},"platform":{"$ref":"../source/program.schema.json#/properties/platform"},"status":{"enum":["active","planned"]},"theme":{"$ref":"../source/theme.schema.json"},"sections":{"type":"integer","minimum":0},"manifest":{"$ref":"#/$defs/hashedUrl"},"showcase":{"$ref":"../source/program.schema.json#/properties/showcase"}}}},"lab":{"type":"string","const":"lab/"},"signature":{"$ref":"#/$defs/hashedUrl"},"interface":{"$ref":"#/$defs/hashedUrl"},"legacyProgram":{"$ref":"../common.schema.json#/$defs/id"}},"$defs":{"hashedUrl":{"type":"string","pattern":"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"}}};const schema33 = {"const":1};const schema35 = {"type":"string","minLength":1,"maxLength":2000,"not":{"pattern":"[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F]"}};const schema37 = {"type":"string","maxLength":2048,"pattern":"^(?:#[/A-Za-z0-9._~%!$&'()*+,;=:@?#-]*|lab/[a-z0-9][a-z0-9._/-]*|https://[^\\s<>\"]+|mailto:[^\\s<>\"]+)$"};const schema38 = {"type":"string","minLength":1,"maxLength":4000,"not":{"pattern":"<\\s*/?\\s*[a-zA-Z!]"}};const schema48 = {"type":"string","pattern":"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"};const schema49 = {"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":64};const func1 = Object.prototype.hasOwnProperty;const func2 = runtime0;const pattern4 = new RegExp("^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:\\.[0-9]+)?Z$", "u");const pattern5 = new RegExp("[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F]", "u");const pattern7 = new RegExp("^(?:#[/A-Za-z0-9._~%!$&'()*+,;=:@?#-]*|lab/[a-z0-9][a-z0-9._/-]*|https://[^\\s<>\"]+|mailto:[^\\s<>\"]+)$", "u");const pattern8 = new RegExp("<\\s*/?\\s*[a-zA-Z!]", "u");const pattern17 = new RegExp("^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$", "u");const pattern18 = new RegExp("^[a-z0-9]+(?:-[a-z0-9]+)*$", "u");const schema34 = {"$ref":"#/$defs/text","maxLength":160,"type":"string"};function validate22(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate22.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate22.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate22.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate22.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate22.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate22.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate22.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate22.errors = vErrors;return errors === 0;}validate22.evaluated = {"dynamicProps":false,"dynamicItems":false};const schema39 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/source/theme.schema.json","type":"object","additionalProperties":false,"properties":{"accent":{"$ref":"../common.schema.json#/$defs/color"},"accentHover":{"$ref":"../common.schema.json#/$defs/color"},"accentSoft":{"$ref":"../common.schema.json#/$defs/color"},"accentText":{"$ref":"../common.schema.json#/$defs/color"},"dark":{"type":"object","additionalProperties":false,"properties":{"accent":{"$ref":"../common.schema.json#/$defs/color"},"accentHover":{"$ref":"../common.schema.json#/$defs/color"},"accentSoft":{"$ref":"../common.schema.json#/$defs/color"},"accentText":{"$ref":"../common.schema.json#/$defs/color"}}}}};const schema40 = {"type":"string","pattern":"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"};const pattern9 = new RegExp("^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$", "u");function validate25(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/source/theme.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate25.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){const _errs1 = errors;for(const key0 in data){if(!(((((key0 === "accent") || (key0 === "accentHover")) || (key0 === "accentSoft")) || (key0 === "accentText")) || (key0 === "dark"))){validate25.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.accent !== undefined){let data0 = data.accent;const _errs2 = errors;const _errs3 = errors;if(errors === _errs3){if(typeof data0 === "string"){if(!pattern9.test(data0)){validate25.errors = [{instancePath:instancePath+"/accent",schemaPath:"../common.schema.json#/$defs/color/pattern",keyword:"pattern",params:{pattern: "^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"},message:"must match pattern \""+"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"+"\""}];return false;}}else {validate25.errors = [{instancePath:instancePath+"/accent",schemaPath:"../common.schema.json#/$defs/color/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.accentHover !== undefined){let data1 = data.accentHover;const _errs5 = errors;const _errs6 = errors;if(errors === _errs6){if(typeof data1 === "string"){if(!pattern9.test(data1)){validate25.errors = [{instancePath:instancePath+"/accentHover",schemaPath:"../common.schema.json#/$defs/color/pattern",keyword:"pattern",params:{pattern: "^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"},message:"must match pattern \""+"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"+"\""}];return false;}}else {validate25.errors = [{instancePath:instancePath+"/accentHover",schemaPath:"../common.schema.json#/$defs/color/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.accentSoft !== undefined){let data2 = data.accentSoft;const _errs8 = errors;const _errs9 = errors;if(errors === _errs9){if(typeof data2 === "string"){if(!pattern9.test(data2)){validate25.errors = [{instancePath:instancePath+"/accentSoft",schemaPath:"../common.schema.json#/$defs/color/pattern",keyword:"pattern",params:{pattern: "^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"},message:"must match pattern \""+"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"+"\""}];return false;}}else {validate25.errors = [{instancePath:instancePath+"/accentSoft",schemaPath:"../common.schema.json#/$defs/color/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs8 === errors;}else {var valid0 = true;}if(valid0){if(data.accentText !== undefined){let data3 = data.accentText;const _errs11 = errors;const _errs12 = errors;if(errors === _errs12){if(typeof data3 === "string"){if(!pattern9.test(data3)){validate25.errors = [{instancePath:instancePath+"/accentText",schemaPath:"../common.schema.json#/$defs/color/pattern",keyword:"pattern",params:{pattern: "^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"},message:"must match pattern \""+"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"+"\""}];return false;}}else {validate25.errors = [{instancePath:instancePath+"/accentText",schemaPath:"../common.schema.json#/$defs/color/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs11 === errors;}else {var valid0 = true;}if(valid0){if(data.dark !== undefined){let data4 = data.dark;const _errs14 = errors;if(errors === _errs14){if(data4 && typeof data4 == "object" && !Array.isArray(data4)){const _errs16 = errors;for(const key1 in data4){if(!((((key1 === "accent") || (key1 === "accentHover")) || (key1 === "accentSoft")) || (key1 === "accentText"))){validate25.errors = [{instancePath:instancePath+"/dark",schemaPath:"#/properties/dark/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs16 === errors){if(data4.accent !== undefined){let data5 = data4.accent;const _errs17 = errors;const _errs18 = errors;if(errors === _errs18){if(typeof data5 === "string"){if(!pattern9.test(data5)){validate25.errors = [{instancePath:instancePath+"/dark/accent",schemaPath:"../common.schema.json#/$defs/color/pattern",keyword:"pattern",params:{pattern: "^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"},message:"must match pattern \""+"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"+"\""}];return false;}}else {validate25.errors = [{instancePath:instancePath+"/dark/accent",schemaPath:"../common.schema.json#/$defs/color/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs17 === errors;}else {var valid5 = true;}if(valid5){if(data4.accentHover !== undefined){let data6 = data4.accentHover;const _errs20 = errors;const _errs21 = errors;if(errors === _errs21){if(typeof data6 === "string"){if(!pattern9.test(data6)){validate25.errors = [{instancePath:instancePath+"/dark/accentHover",schemaPath:"../common.schema.json#/$defs/color/pattern",keyword:"pattern",params:{pattern: "^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"},message:"must match pattern \""+"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"+"\""}];return false;}}else {validate25.errors = [{instancePath:instancePath+"/dark/accentHover",schemaPath:"../common.schema.json#/$defs/color/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs20 === errors;}else {var valid5 = true;}if(valid5){if(data4.accentSoft !== undefined){let data7 = data4.accentSoft;const _errs23 = errors;const _errs24 = errors;if(errors === _errs24){if(typeof data7 === "string"){if(!pattern9.test(data7)){validate25.errors = [{instancePath:instancePath+"/dark/accentSoft",schemaPath:"../common.schema.json#/$defs/color/pattern",keyword:"pattern",params:{pattern: "^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"},message:"must match pattern \""+"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"+"\""}];return false;}}else {validate25.errors = [{instancePath:instancePath+"/dark/accentSoft",schemaPath:"../common.schema.json#/$defs/color/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs23 === errors;}else {var valid5 = true;}if(valid5){if(data4.accentText !== undefined){let data8 = data4.accentText;const _errs26 = errors;const _errs27 = errors;if(errors === _errs27){if(typeof data8 === "string"){if(!pattern9.test(data8)){validate25.errors = [{instancePath:instancePath+"/dark/accentText",schemaPath:"../common.schema.json#/$defs/color/pattern",keyword:"pattern",params:{pattern: "^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"},message:"must match pattern \""+"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"+"\""}];return false;}}else {validate25.errors = [{instancePath:instancePath+"/dark/accentText",schemaPath:"../common.schema.json#/$defs/color/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs26 === errors;}else {var valid5 = true;}}}}}}else {validate25.errors = [{instancePath:instancePath+"/dark",schemaPath:"#/properties/dark/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs14 === errors;}else {var valid0 = true;}}}}}}}else {validate25.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate25.errors = vErrors;return errors === 0;}validate25.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema62 = {"type":"object","additionalProperties":false,"required":["family","version","label"],"properties":{"family":{"$ref":"../common.schema.json#/$defs/id"},"version":{"type":"string","pattern":"^[0-9]+(?:\\.[0-9]+)?$"},"label":{"$ref":"../common.schema.json#/$defs/shortText","maxLength":24,"type":"string"}}};const pattern24 = new RegExp("^[0-9]+(?:\\.[0-9]+)?$", "u");function validate31(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate31.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate31.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate31.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate31.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate31.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate31.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate31.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate31.errors = vErrors;return errors === 0;}validate31.evaluated = {"dynamicProps":false,"dynamicItems":false};function validate44(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate44.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((data.family === undefined) && (missing0 = "family")) || ((data.version === undefined) && (missing0 = "version"))) || ((data.label === undefined) && (missing0 = "label"))){validate44.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "family") || (key0 === "version")) || (key0 === "label"))){validate44.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.family !== undefined){let data0 = data.family;const _errs2 = errors;const _errs3 = errors;if(errors === _errs3){if(typeof data0 === "string"){if(func2(data0) > 64){validate44.errors = [{instancePath:instancePath+"/family",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data0)){validate44.errors = [{instancePath:instancePath+"/family",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate44.errors = [{instancePath:instancePath+"/family",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.version !== undefined){let data1 = data.version;const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(!pattern24.test(data1)){validate44.errors = [{instancePath:instancePath+"/version",schemaPath:"#/properties/version/pattern",keyword:"pattern",params:{pattern: "^[0-9]+(?:\\.[0-9]+)?$"},message:"must match pattern \""+"^[0-9]+(?:\\.[0-9]+)?$"+"\""}];return false;}}else {validate44.errors = [{instancePath:instancePath+"/version",schemaPath:"#/properties/version/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.label !== undefined){let data2 = data.label;const _errs7 = errors;if(!(validate31(data2, {instancePath:instancePath+"/label",parentData:data,parentDataProperty:"label",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}if(errors === _errs7){if(typeof data2 === "string"){if(func2(data2) > 24){validate44.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/maxLength",keyword:"maxLength",params:{limit: 24},message:"must NOT have more than 24 characters"}];return false;}}else {validate44.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}}else {validate44.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate44.errors = vErrors;return errors === 0;}validate44.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema65 = {"type":"object","additionalProperties":false,"required":["art"],"properties":{"art":{"enum":["automation","terminal"]},"tone":{"enum":["purple","teal","coral","pink","blue","green","amber","gray"]},"highlights":{"type":"array","maxItems":6,"items":{"$ref":"../common.schema.json#/$defs/shortText","maxLength":28,"type":"string"}},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"label":{"$ref":"../common.schema.json#/$defs/shortText","maxLength":24,"type":"string"},"summary":{"$ref":"../common.schema.json#/$defs/text","maxLength":400,"type":"string"}}};function validate48(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate48.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((data.art === undefined) && (missing0 = "art")){validate48.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((((((key0 === "art") || (key0 === "tone")) || (key0 === "highlights")) || (key0 === "title")) || (key0 === "label")) || (key0 === "summary"))){validate48.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.art !== undefined){let data0 = data.art;const _errs2 = errors;if(!((data0 === "automation") || (data0 === "terminal"))){validate48.errors = [{instancePath:instancePath+"/art",schemaPath:"#/properties/art/enum",keyword:"enum",params:{allowedValues: schema65.properties.art.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.tone !== undefined){let data1 = data.tone;const _errs3 = errors;if(!((((((((data1 === "purple") || (data1 === "teal")) || (data1 === "coral")) || (data1 === "pink")) || (data1 === "blue")) || (data1 === "green")) || (data1 === "amber")) || (data1 === "gray"))){validate48.errors = [{instancePath:instancePath+"/tone",schemaPath:"#/properties/tone/enum",keyword:"enum",params:{allowedValues: schema65.properties.tone.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.highlights !== undefined){let data2 = data.highlights;const _errs4 = errors;if(errors === _errs4){if(Array.isArray(data2)){if(data2.length > 6){validate48.errors = [{instancePath:instancePath+"/highlights",schemaPath:"#/properties/highlights/maxItems",keyword:"maxItems",params:{limit: 6},message:"must NOT have more than 6 items"}];return false;}else {var valid1 = true;const len0 = data2.length;for(let i0=0; i0 28){validate48.errors = [{instancePath:instancePath+"/highlights/" + i0,schemaPath:"#/properties/highlights/items/maxLength",keyword:"maxLength",params:{limit: 28},message:"must NOT have more than 28 characters"}];return false;}}else {validate48.errors = [{instancePath:instancePath+"/highlights/" + i0,schemaPath:"#/properties/highlights/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs6 === errors;if(!valid1){break;}}}}else {validate48.errors = [{instancePath:instancePath+"/highlights",schemaPath:"#/properties/highlights/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.title !== undefined){const _errs8 = errors;if(!(validate31(data.title, {instancePath:instancePath+"/title",parentData:data,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}var valid0 = _errs8 === errors;}else {var valid0 = true;}if(valid0){if(data.label !== undefined){let data5 = data.label;const _errs9 = errors;if(!(validate31(data5, {instancePath:instancePath+"/label",parentData:data,parentDataProperty:"label",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}if(errors === _errs9){if(typeof data5 === "string"){if(func2(data5) > 24){validate48.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/maxLength",keyword:"maxLength",params:{limit: 24},message:"must NOT have more than 24 characters"}];return false;}}else {validate48.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs9 === errors;}else {var valid0 = true;}if(valid0){if(data.summary !== undefined){let data6 = data.summary;const _errs11 = errors;const _errs12 = errors;const _errs14 = errors;const _errs15 = errors;if(typeof data6 === "string"){if(!pattern5.test(data6)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid3 = _errs15 === errors;if(valid3){validate48.errors = [{instancePath:instancePath+"/summary",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs14;if(vErrors !== null){if(_errs14){vErrors.length = _errs14;}else {vErrors = null;}}}if(errors === _errs12){if(typeof data6 === "string"){if(func2(data6) > 2000){validate48.errors = [{instancePath:instancePath+"/summary",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data6) < 1){validate48.errors = [{instancePath:instancePath+"/summary",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate48.errors = [{instancePath:instancePath+"/summary",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === _errs11){if(typeof data6 === "string"){if(func2(data6) > 400){validate48.errors = [{instancePath:instancePath+"/summary",schemaPath:"#/properties/summary/maxLength",keyword:"maxLength",params:{limit: 400},message:"must NOT have more than 400 characters"}];return false;}}else {validate48.errors = [{instancePath:instancePath+"/summary",schemaPath:"#/properties/summary/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs11 === errors;}else {var valid0 = true;}}}}}}}}}else {validate48.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate48.errors = vErrors;return errors === 0;}validate48.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/bundle/site.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((((data.apiVersion === undefined) && (missing0 = "apiVersion")) || ((data.generatedAt === undefined) && (missing0 = "generatedAt"))) || ((data.site === undefined) && (missing0 = "site"))) || ((data.programs === undefined) && (missing0 = "programs"))){validate20.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema31.properties, key0))){validate20.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.apiVersion !== undefined){const _errs2 = errors;if(1 !== data.apiVersion){validate20.errors = [{instancePath:instancePath+"/apiVersion",schemaPath:"../common.schema.json#/$defs/apiVersion/const",keyword:"const",params:{allowedValue: 1},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.generatedAt !== undefined){let data1 = data.generatedAt;const _errs4 = errors;if(errors === _errs4){if(typeof data1 === "string"){if(!pattern4.test(data1)){validate20.errors = [{instancePath:instancePath+"/generatedAt",schemaPath:"#/properties/generatedAt/pattern",keyword:"pattern",params:{pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:\\.[0-9]+)?Z$"},message:"must match pattern \""+"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:\\.[0-9]+)?Z$"+"\""}];return false;}}else {validate20.errors = [{instancePath:instancePath+"/generatedAt",schemaPath:"#/properties/generatedAt/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.site !== undefined){let data2 = data.site;const _errs6 = errors;if(errors === _errs6){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.name === undefined) && (missing1 = "name")) || ((data2.tagline === undefined) && (missing1 = "tagline"))){validate20.errors = [{instancePath:instancePath+"/site",schemaPath:"#/properties/site/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs8 = errors;for(const key1 in data2){if(!((((((((key1 === "name") || (key1 === "tagline")) || (key1 === "description")) || (key1 === "repo")) || (key1 === "links")) || (key1 === "legal")) || (key1 === "theme")) || (key1 === "home"))){validate20.errors = [{instancePath:instancePath+"/site",schemaPath:"#/properties/site/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs8 === errors){if(data2.name !== undefined){const _errs9 = errors;if(!(validate22(data2.name, {instancePath:instancePath+"/site/name",parentData:data2,parentDataProperty:"name",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}var valid2 = _errs9 === errors;}else {var valid2 = true;}if(valid2){if(data2.tagline !== undefined){const _errs10 = errors;if(!(validate22(data2.tagline, {instancePath:instancePath+"/site/tagline",parentData:data2,parentDataProperty:"tagline",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.description !== undefined){let data5 = data2.description;const _errs11 = errors;const _errs12 = errors;const _errs14 = errors;const _errs15 = errors;if(typeof data5 === "string"){if(!pattern5.test(data5)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid4 = _errs15 === errors;if(valid4){validate20.errors = [{instancePath:instancePath+"/site/description",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs14;if(vErrors !== null){if(_errs14){vErrors.length = _errs14;}else {vErrors = null;}}}if(errors === _errs12){if(typeof data5 === "string"){if(func2(data5) > 2000){validate20.errors = [{instancePath:instancePath+"/site/description",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data5) < 1){validate20.errors = [{instancePath:instancePath+"/site/description",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate20.errors = [{instancePath:instancePath+"/site/description",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs11 === errors;}else {var valid2 = true;}if(valid2){if(data2.repo !== undefined){let data6 = data2.repo;const _errs16 = errors;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 2048){validate20.errors = [{instancePath:instancePath+"/site/repo",schemaPath:"../common.schema.json#/$defs/url/maxLength",keyword:"maxLength",params:{limit: 2048},message:"must NOT have more than 2048 characters"}];return false;}else {if(!pattern7.test(data6)){validate20.errors = [{instancePath:instancePath+"/site/repo",schemaPath:"../common.schema.json#/$defs/url/pattern",keyword:"pattern",params:{pattern: "^(?:#[/A-Za-z0-9._~%!$&'()*+,;=:@?#-]*|lab/[a-z0-9][a-z0-9._/-]*|https://[^\\s<>\"]+|mailto:[^\\s<>\"]+)$"},message:"must match pattern \""+"^(?:#[/A-Za-z0-9._~%!$&'()*+,;=:@?#-]*|lab/[a-z0-9][a-z0-9._/-]*|https://[^\\s<>\"]+|mailto:[^\\s<>\"]+)$"+"\""}];return false;}}}else {validate20.errors = [{instancePath:instancePath+"/site/repo",schemaPath:"../common.schema.json#/$defs/url/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs16 === errors;}else {var valid2 = true;}if(valid2){if(data2.links !== undefined){const _errs19 = errors;if(!(Array.isArray(data2.links))){validate20.errors = [{instancePath:instancePath+"/site/links",schemaPath:"#/properties/site/properties/links/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}var valid2 = _errs19 === errors;}else {var valid2 = true;}if(valid2){if(data2.legal !== undefined){let data8 = data2.legal;const _errs21 = errors;const _errs22 = errors;const _errs24 = errors;const _errs25 = errors;if(typeof data8 === "string"){if(!pattern8.test(data8)){const err1 = {};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}var valid7 = _errs25 === errors;if(valid7){validate20.errors = [{instancePath:instancePath+"/site/legal",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs24;if(vErrors !== null){if(_errs24){vErrors.length = _errs24;}else {vErrors = null;}}}if(errors === _errs22){if(typeof data8 === "string"){if(func2(data8) > 4000){validate20.errors = [{instancePath:instancePath+"/site/legal",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data8) < 1){validate20.errors = [{instancePath:instancePath+"/site/legal",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate20.errors = [{instancePath:instancePath+"/site/legal",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs21 === errors;}else {var valid2 = true;}if(valid2){if(data2.theme !== undefined){const _errs26 = errors;if(!(validate25(data2.theme, {instancePath:instancePath+"/site/theme",parentData:data2,parentDataProperty:"theme",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate25.errors : vErrors.concat(validate25.errors);errors = vErrors.length;}var valid2 = _errs26 === errors;}else {var valid2 = true;}if(valid2){if(data2.home !== undefined){let data10 = data2.home;const _errs27 = errors;const _errs28 = errors;if(errors === _errs28){if(typeof data10 === "string"){if(!pattern17.test(data10)){validate20.errors = [{instancePath:instancePath+"/site/home",schemaPath:"#/$defs/hashedUrl/pattern",keyword:"pattern",params:{pattern: "^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"},message:"must match pattern \""+"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"+"\""}];return false;}}else {validate20.errors = [{instancePath:instancePath+"/site/home",schemaPath:"#/$defs/hashedUrl/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs27 === errors;}else {var valid2 = true;}}}}}}}}}}}else {validate20.errors = [{instancePath:instancePath+"/site",schemaPath:"#/properties/site/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs6 === errors;}else {var valid0 = true;}if(valid0){if(data.ui !== undefined){let data11 = data.ui;const _errs30 = errors;if(errors === _errs30){if(data11 && typeof data11 == "object" && !Array.isArray(data11)){for(const key2 in data11){let data12 = data11[key2];const _errs33 = errors;if(errors === _errs33){if(data12 && typeof data12 == "object" && !Array.isArray(data12)){for(const key3 in data12){let data13 = data12[key3];const _errs36 = errors;if(errors === _errs36){if(data13 && typeof data13 == "object" && !Array.isArray(data13)){for(const key4 in data13){let data14 = data13[key4];const _errs39 = errors;if(errors === _errs39){if(typeof data14 === "string"){if(func2(data14) > 1000){validate20.errors = [{instancePath:instancePath+"/ui/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/ui/additionalProperties/additionalProperties/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 1000},message:"must NOT have more than 1000 characters"}];return false;}}else {validate20.errors = [{instancePath:instancePath+"/ui/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/ui/additionalProperties/additionalProperties/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid11 = _errs39 === errors;if(!valid11){break;}}}else {validate20.errors = [{instancePath:instancePath+"/ui/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/ui/additionalProperties/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs36 === errors;if(!valid10){break;}}}else {validate20.errors = [{instancePath:instancePath+"/ui/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/ui/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid9 = _errs33 === errors;if(!valid9){break;}}}else {validate20.errors = [{instancePath:instancePath+"/ui",schemaPath:"#/properties/ui/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs30 === errors;}else {var valid0 = true;}if(valid0){if(data.programs !== undefined){let data15 = data.programs;const _errs41 = errors;if(errors === _errs41){if(Array.isArray(data15)){if(data15.length < 1){validate20.errors = [{instancePath:instancePath+"/programs",schemaPath:"#/properties/programs/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid12 = true;const len0 = data15.length;for(let i0=0; i0 64){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data17)){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid13 = _errs46 === errors;}else {var valid13 = true;}if(valid13){if(data16.title !== undefined){const _errs49 = errors;if(!(validate22(data16.title, {instancePath:instancePath+"/programs/" + i0+"/title",parentData:data16,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}var valid13 = _errs49 === errors;}else {var valid13 = true;}if(valid13){if(data16.label !== undefined){const _errs50 = errors;if(!(validate22(data16.label, {instancePath:instancePath+"/programs/" + i0+"/label",parentData:data16,parentDataProperty:"label",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}var valid13 = _errs50 === errors;}else {var valid13 = true;}if(valid13){if(data16.tagline !== undefined){const _errs51 = errors;if(!(validate22(data16.tagline, {instancePath:instancePath+"/programs/" + i0+"/tagline",parentData:data16,parentDataProperty:"tagline",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}var valid13 = _errs51 === errors;}else {var valid13 = true;}if(valid13){if(data16.summary !== undefined){let data21 = data16.summary;const _errs52 = errors;const _errs53 = errors;const _errs55 = errors;const _errs56 = errors;if(typeof data21 === "string"){if(!pattern5.test(data21)){const err2 = {};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}var valid16 = _errs56 === errors;if(valid16){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/summary",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs55;if(vErrors !== null){if(_errs55){vErrors.length = _errs55;}else {vErrors = null;}}}if(errors === _errs53){if(typeof data21 === "string"){if(func2(data21) > 2000){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/summary",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data21) < 1){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/summary",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/summary",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid13 = _errs52 === errors;}else {var valid13 = true;}if(valid13){if(data16.platform !== undefined){const _errs57 = errors;if(!(validate44(data16.platform, {instancePath:instancePath+"/programs/" + i0+"/platform",parentData:data16,parentDataProperty:"platform",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate44.errors : vErrors.concat(validate44.errors);errors = vErrors.length;}var valid13 = _errs57 === errors;}else {var valid13 = true;}if(valid13){if(data16.status !== undefined){let data23 = data16.status;const _errs58 = errors;if(!((data23 === "active") || (data23 === "planned"))){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/status",schemaPath:"#/properties/programs/items/properties/status/enum",keyword:"enum",params:{allowedValues: schema31.properties.programs.items.properties.status.enum},message:"must be equal to one of the allowed values"}];return false;}var valid13 = _errs58 === errors;}else {var valid13 = true;}if(valid13){if(data16.theme !== undefined){const _errs59 = errors;if(!(validate25(data16.theme, {instancePath:instancePath+"/programs/" + i0+"/theme",parentData:data16,parentDataProperty:"theme",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate25.errors : vErrors.concat(validate25.errors);errors = vErrors.length;}var valid13 = _errs59 === errors;}else {var valid13 = true;}if(valid13){if(data16.sections !== undefined){let data25 = data16.sections;const _errs60 = errors;if(!(((typeof data25 == "number") && (!(data25 % 1) && !isNaN(data25))) && (isFinite(data25)))){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/sections",schemaPath:"#/properties/programs/items/properties/sections/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs60){if((typeof data25 == "number") && (isFinite(data25))){if(data25 < 0 || isNaN(data25)){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/sections",schemaPath:"#/properties/programs/items/properties/sections/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"}];return false;}}}var valid13 = _errs60 === errors;}else {var valid13 = true;}if(valid13){if(data16.manifest !== undefined){let data26 = data16.manifest;const _errs62 = errors;const _errs63 = errors;if(errors === _errs63){if(typeof data26 === "string"){if(!pattern17.test(data26)){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/manifest",schemaPath:"#/$defs/hashedUrl/pattern",keyword:"pattern",params:{pattern: "^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"},message:"must match pattern \""+"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"+"\""}];return false;}}else {validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/manifest",schemaPath:"#/$defs/hashedUrl/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid13 = _errs62 === errors;}else {var valid13 = true;}if(valid13){if(data16.showcase !== undefined){const _errs65 = errors;if(!(validate48(data16.showcase, {instancePath:instancePath+"/programs/" + i0+"/showcase",parentData:data16,parentDataProperty:"showcase",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate48.errors : vErrors.concat(validate48.errors);errors = vErrors.length;}var valid13 = _errs65 === errors;}else {var valid13 = true;}}}}}}}}}}}}}}else {validate20.errors = [{instancePath:instancePath+"/programs/" + i0,schemaPath:"#/properties/programs/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid12 = _errs43 === errors;if(!valid12){break;}}}}else {validate20.errors = [{instancePath:instancePath+"/programs",schemaPath:"#/properties/programs/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs41 === errors;}else {var valid0 = true;}if(valid0){if(data.lab !== undefined){let data28 = data.lab;const _errs66 = errors;if(typeof data28 !== "string"){validate20.errors = [{instancePath:instancePath+"/lab",schemaPath:"#/properties/lab/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}if("lab/" !== data28){validate20.errors = [{instancePath:instancePath+"/lab",schemaPath:"#/properties/lab/const",keyword:"const",params:{allowedValue: "lab/"},message:"must be equal to constant"}];return false;}var valid0 = _errs66 === errors;}else {var valid0 = true;}if(valid0){if(data.signature !== undefined){let data29 = data.signature;const _errs68 = errors;const _errs69 = errors;if(errors === _errs69){if(typeof data29 === "string"){if(!pattern17.test(data29)){validate20.errors = [{instancePath:instancePath+"/signature",schemaPath:"#/$defs/hashedUrl/pattern",keyword:"pattern",params:{pattern: "^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"},message:"must match pattern \""+"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"+"\""}];return false;}}else {validate20.errors = [{instancePath:instancePath+"/signature",schemaPath:"#/$defs/hashedUrl/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs68 === errors;}else {var valid0 = true;}if(valid0){if(data.interface !== undefined){let data30 = data.interface;const _errs71 = errors;const _errs72 = errors;if(errors === _errs72){if(typeof data30 === "string"){if(!pattern17.test(data30)){validate20.errors = [{instancePath:instancePath+"/interface",schemaPath:"#/$defs/hashedUrl/pattern",keyword:"pattern",params:{pattern: "^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"},message:"must match pattern \""+"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"+"\""}];return false;}}else {validate20.errors = [{instancePath:instancePath+"/interface",schemaPath:"#/$defs/hashedUrl/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs71 === errors;}else {var valid0 = true;}if(valid0){if(data.legacyProgram !== undefined){let data31 = data.legacyProgram;const _errs74 = errors;const _errs75 = errors;if(errors === _errs75){if(typeof data31 === "string"){if(func2(data31) > 64){validate20.errors = [{instancePath:instancePath+"/legacyProgram",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data31)){validate20.errors = [{instancePath:instancePath+"/legacyProgram",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate20.errors = [{instancePath:instancePath+"/legacyProgram",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs74 === errors;}else {var valid0 = true;}}}}}}}}}}}}else {validate20.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateManifest = validate53;const schema70 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/bundle/manifest.schema.json","type":"object","additionalProperties":false,"required":["apiVersion","program","chapters","objectives","pages","search"],"properties":{"apiVersion":{"$ref":"../common.schema.json#/$defs/apiVersion"},"program":{"$ref":"../source/program.schema.json"},"chapters":{"type":"array","maxItems":99,"items":{"type":"object","additionalProperties":false,"required":["id","number","title","status","sections"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/chapterId"},"number":{"type":"integer","minimum":1,"maximum":99},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"goal":{"$ref":"../common.schema.json#/$defs/text"},"objectives":{"type":"array","items":{"$ref":"../common.schema.json#/$defs/text"}},"objectiveIds":{"type":"array","items":{"$ref":"../common.schema.json#/$defs/objectiveId"}},"topics":{"type":"array","items":{"$ref":"../common.schema.json#/$defs/shortText"}},"setup":{"type":"boolean"},"status":{"enum":["active","planned"]},"sections":{"type":"array","maxItems":60,"items":{"type":"object","additionalProperties":false,"required":["slug","title","kind","minutes"],"properties":{"slug":{"$ref":"../common.schema.json#/$defs/id"},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"kind":{"enum":["lesson","lab","quiz","summary","reference"]},"minutes":{"$ref":"../common.schema.json#/$defs/minutes"},"activities":{"type":"object","additionalProperties":false,"properties":{"quizzes":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","quizId","prompt","revision"],"properties":{"id":{"type":"string","pattern":"^q-[a-z0-9]{6,32}$"},"quizId":{"$ref":"../common.schema.json#/$defs/id"},"prompt":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"},"revision":{"type":"string","pattern":"^[a-f0-9]{1,16}$"}}}},"tasks":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","labId","title"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/id"},"labId":{"$ref":"../common.schema.json#/$defs/id"},"title":{"$ref":"../common.schema.json#/$defs/shortText"}}}},"practice":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","objective","title"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/id"},"objective":{"$ref":"../common.schema.json#/$defs/objectiveId"},"title":{"$ref":"../common.schema.json#/$defs/shortText"}}}}}}}}}}}},"objectives":{"$ref":"../source/objectives.schema.json"},"pages":{"type":"object","propertyNames":{"pattern":"^(?:ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*|home|details)$"},"additionalProperties":{"$ref":"site.schema.json#/$defs/hashedUrl"}},"search":{"$ref":"site.schema.json#/$defs/hashedUrl"},"legacy":{"$ref":"site.schema.json#/$defs/hashedUrl"},"labReports":{"type":"object","additionalProperties":false,"required":["exercises"],"properties":{"exercises":{"type":"object","maxProperties":500,"propertyNames":{"$ref":"../common.schema.json#/$defs/id"},"additionalProperties":{"type":"object","additionalProperties":false,"required":["version","lesson","checkpoints"],"properties":{"version":{"type":"integer","minimum":1},"lesson":{"type":"string","pattern":"^#/ch[0-9]{2}/[a-z0-9-]+$"},"checkpoints":{"type":"object","required":["final"],"additionalProperties":{"type":"object","additionalProperties":false,"required":["files","groups","local","probes"],"properties":{"files":{"type":"array","maxItems":500,"items":{"type":"string","maxLength":240}},"groups":{"type":"object","additionalProperties":{"type":"array","maxItems":500,"items":{"type":"string","maxLength":240}}},"local":{"type":"array","maxItems":40,"items":{"type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/id"}}}},"probes":{"type":"array","maxItems":40,"items":{"type":"object","additionalProperties":false,"required":["id","targets"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/id"},"targets":{"type":"array","maxItems":500,"items":{"type":"string","maxLength":240}}}}}}}}}}}}}}};const schema72 = {"type":"string","pattern":"^ch[0-9]{2}$"};const schema77 = {"type":"string","pattern":"^ch[0-9]{2}\\.[a-z0-9]+(?:-[a-z0-9]+)*$"};const schema79 = {"type":"integer","minimum":1,"maximum":600};const schema51 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/source/program.schema.json","type":"object","additionalProperties":false,"required":["apiVersion","id","title","label","platform","status","summary"],"properties":{"apiVersion":{"$ref":"../common.schema.json#/$defs/apiVersion"},"id":{"$ref":"../common.schema.json#/$defs/id"},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"label":{"$ref":"../common.schema.json#/$defs/shortText","maxLength":32,"type":"string"},"tagline":{"$ref":"../common.schema.json#/$defs/shortText"},"summary":{"$ref":"../common.schema.json#/$defs/text","maxLength":400,"type":"string"},"platform":{"type":"object","additionalProperties":false,"required":["family","version","label"],"properties":{"family":{"$ref":"../common.schema.json#/$defs/id"},"version":{"type":"string","pattern":"^[0-9]+(?:\\.[0-9]+)?$"},"label":{"$ref":"../common.schema.json#/$defs/shortText","maxLength":24,"type":"string"}}},"status":{"enum":["active","planned"]},"stages":{"type":"array","maxItems":12,"items":{"type":"object","additionalProperties":false,"required":["title","chapters"],"properties":{"title":{"$ref":"../common.schema.json#/$defs/shortText"},"chapters":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"integer","minimum":1,"maximum":99}},"text":{"$ref":"../common.schema.json#/$defs/text","maxLength":300,"type":"string"}}}},"variants":{"type":"array","maxItems":6,"items":{"type":"object","additionalProperties":false,"required":["id","label"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/id"},"label":{"$ref":"../common.schema.json#/$defs/shortText"},"icon":{"enum":["school","house","server","laptop","cloud"]},"default":{"type":"boolean"}}}},"readerVariables":{"type":"array","maxItems":12,"items":{"type":"object","additionalProperties":false,"required":["key","label"],"properties":{"key":{"$ref":"../common.schema.json#/$defs/variableKey"},"label":{"$ref":"../common.schema.json#/$defs/shortText"},"hint":{"$ref":"../common.schema.json#/$defs/shortText"},"example":{"type":"string","maxLength":64},"pattern":{"enum":["ipv4","hostname","username","text"]}}}},"lab":{"type":"boolean"},"labGuide":{"type":"string","pattern":"^ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*$"},"theme":{"$ref":"theme.schema.json"},"showcase":{"type":"object","additionalProperties":false,"required":["art"],"properties":{"art":{"enum":["automation","terminal"]},"tone":{"enum":["purple","teal","coral","pink","blue","green","amber","gray"]},"highlights":{"type":"array","maxItems":6,"items":{"$ref":"../common.schema.json#/$defs/shortText","maxLength":28,"type":"string"}},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"label":{"$ref":"../common.schema.json#/$defs/shortText","maxLength":24,"type":"string"},"summary":{"$ref":"../common.schema.json#/$defs/text","maxLength":400,"type":"string"}}}}};const schema60 = {"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,31}$"};const pattern27 = new RegExp("^[A-Z][A-Z0-9_]{1,31}$", "u");const pattern28 = new RegExp("^ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*$", "u");function validate30(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/source/program.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate30.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((((((data.apiVersion === undefined) && (missing0 = "apiVersion")) || ((data.id === undefined) && (missing0 = "id"))) || ((data.title === undefined) && (missing0 = "title"))) || ((data.label === undefined) && (missing0 = "label"))) || ((data.platform === undefined) && (missing0 = "platform"))) || ((data.status === undefined) && (missing0 = "status"))) || ((data.summary === undefined) && (missing0 = "summary"))){validate30.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema51.properties, key0))){validate30.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.apiVersion !== undefined){const _errs2 = errors;if(1 !== data.apiVersion){validate30.errors = [{instancePath:instancePath+"/apiVersion",schemaPath:"../common.schema.json#/$defs/apiVersion/const",keyword:"const",params:{allowedValue: 1},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.id !== undefined){let data1 = data.id;const _errs4 = errors;const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 64){validate30.errors = [{instancePath:instancePath+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data1)){validate30.errors = [{instancePath:instancePath+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate30.errors = [{instancePath:instancePath+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.title !== undefined){const _errs7 = errors;if(!(validate31(data.title, {instancePath:instancePath+"/title",parentData:data,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.label !== undefined){let data3 = data.label;const _errs8 = errors;if(!(validate31(data3, {instancePath:instancePath+"/label",parentData:data,parentDataProperty:"label",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}if(errors === _errs8){if(typeof data3 === "string"){if(func2(data3) > 32){validate30.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/maxLength",keyword:"maxLength",params:{limit: 32},message:"must NOT have more than 32 characters"}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs8 === errors;}else {var valid0 = true;}if(valid0){if(data.tagline !== undefined){const _errs10 = errors;if(!(validate31(data.tagline, {instancePath:instancePath+"/tagline",parentData:data,parentDataProperty:"tagline",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}var valid0 = _errs10 === errors;}else {var valid0 = true;}if(valid0){if(data.summary !== undefined){let data5 = data.summary;const _errs11 = errors;const _errs12 = errors;const _errs14 = errors;const _errs15 = errors;if(typeof data5 === "string"){if(!pattern5.test(data5)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid4 = _errs15 === errors;if(valid4){validate30.errors = [{instancePath:instancePath+"/summary",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs14;if(vErrors !== null){if(_errs14){vErrors.length = _errs14;}else {vErrors = null;}}}if(errors === _errs12){if(typeof data5 === "string"){if(func2(data5) > 2000){validate30.errors = [{instancePath:instancePath+"/summary",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data5) < 1){validate30.errors = [{instancePath:instancePath+"/summary",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate30.errors = [{instancePath:instancePath+"/summary",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === _errs11){if(typeof data5 === "string"){if(func2(data5) > 400){validate30.errors = [{instancePath:instancePath+"/summary",schemaPath:"#/properties/summary/maxLength",keyword:"maxLength",params:{limit: 400},message:"must NOT have more than 400 characters"}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/summary",schemaPath:"#/properties/summary/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs11 === errors;}else {var valid0 = true;}if(valid0){if(data.platform !== undefined){let data6 = data.platform;const _errs17 = errors;if(errors === _errs17){if(data6 && typeof data6 == "object" && !Array.isArray(data6)){let missing1;if((((data6.family === undefined) && (missing1 = "family")) || ((data6.version === undefined) && (missing1 = "version"))) || ((data6.label === undefined) && (missing1 = "label"))){validate30.errors = [{instancePath:instancePath+"/platform",schemaPath:"#/properties/platform/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs19 = errors;for(const key1 in data6){if(!(((key1 === "family") || (key1 === "version")) || (key1 === "label"))){validate30.errors = [{instancePath:instancePath+"/platform",schemaPath:"#/properties/platform/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs19 === errors){if(data6.family !== undefined){let data7 = data6.family;const _errs20 = errors;const _errs21 = errors;if(errors === _errs21){if(typeof data7 === "string"){if(func2(data7) > 64){validate30.errors = [{instancePath:instancePath+"/platform/family",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data7)){validate30.errors = [{instancePath:instancePath+"/platform/family",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate30.errors = [{instancePath:instancePath+"/platform/family",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs20 === errors;}else {var valid5 = true;}if(valid5){if(data6.version !== undefined){let data8 = data6.version;const _errs23 = errors;if(errors === _errs23){if(typeof data8 === "string"){if(!pattern24.test(data8)){validate30.errors = [{instancePath:instancePath+"/platform/version",schemaPath:"#/properties/platform/properties/version/pattern",keyword:"pattern",params:{pattern: "^[0-9]+(?:\\.[0-9]+)?$"},message:"must match pattern \""+"^[0-9]+(?:\\.[0-9]+)?$"+"\""}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/platform/version",schemaPath:"#/properties/platform/properties/version/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs23 === errors;}else {var valid5 = true;}if(valid5){if(data6.label !== undefined){let data9 = data6.label;const _errs25 = errors;if(!(validate31(data9, {instancePath:instancePath+"/platform/label",parentData:data6,parentDataProperty:"label",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}if(errors === _errs25){if(typeof data9 === "string"){if(func2(data9) > 24){validate30.errors = [{instancePath:instancePath+"/platform/label",schemaPath:"#/properties/platform/properties/label/maxLength",keyword:"maxLength",params:{limit: 24},message:"must NOT have more than 24 characters"}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/platform/label",schemaPath:"#/properties/platform/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs25 === errors;}else {var valid5 = true;}}}}}}else {validate30.errors = [{instancePath:instancePath+"/platform",schemaPath:"#/properties/platform/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs17 === errors;}else {var valid0 = true;}if(valid0){if(data.status !== undefined){let data10 = data.status;const _errs27 = errors;if(!((data10 === "active") || (data10 === "planned"))){validate30.errors = [{instancePath:instancePath+"/status",schemaPath:"#/properties/status/enum",keyword:"enum",params:{allowedValues: schema51.properties.status.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs27 === errors;}else {var valid0 = true;}if(valid0){if(data.stages !== undefined){let data11 = data.stages;const _errs28 = errors;if(errors === _errs28){if(Array.isArray(data11)){if(data11.length > 12){validate30.errors = [{instancePath:instancePath+"/stages",schemaPath:"#/properties/stages/maxItems",keyword:"maxItems",params:{limit: 12},message:"must NOT have more than 12 items"}];return false;}else {var valid7 = true;const len0 = data11.length;for(let i0=0; i0 99 || isNaN(data15)){validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/chapters/" + i1,schemaPath:"#/properties/stages/items/properties/chapters/items/maximum",keyword:"maximum",params:{comparison: "<=", limit: 99},message:"must be <= 99"}];return false;}else {if(data15 < 1 || isNaN(data15)){validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/chapters/" + i1,schemaPath:"#/properties/stages/items/properties/chapters/items/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}}var valid9 = _errs36 === errors;if(!valid9){break;}}if(valid9){let i2 = data14.length;let j0;if(i2 > 1){const indices0 = {};for(;i2--;){let item0 = data14[i2];if(!(((typeof item0 == "number") && (!(item0 % 1) && !isNaN(item0))) && (isFinite(item0)))){continue;}if(typeof indices0[item0] == "number"){j0 = indices0[item0];validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/chapters",schemaPath:"#/properties/stages/items/properties/chapters/uniqueItems",keyword:"uniqueItems",params:{i: i2, j: j0},message:"must NOT have duplicate items (items ## "+j0+" and "+i2+" are identical)"}];return false;break;}indices0[item0] = i2;}}}}}else {validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/chapters",schemaPath:"#/properties/stages/items/properties/chapters/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid8 = _errs34 === errors;}else {var valid8 = true;}if(valid8){if(data12.text !== undefined){let data16 = data12.text;const _errs38 = errors;const _errs39 = errors;const _errs41 = errors;const _errs42 = errors;if(typeof data16 === "string"){if(!pattern5.test(data16)){const err1 = {};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}var valid12 = _errs42 === errors;if(valid12){validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs41;if(vErrors !== null){if(_errs41){vErrors.length = _errs41;}else {vErrors = null;}}}if(errors === _errs39){if(typeof data16 === "string"){if(func2(data16) > 2000){validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data16) < 1){validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === _errs38){if(typeof data16 === "string"){if(func2(data16) > 300){validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/text",schemaPath:"#/properties/stages/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/text",schemaPath:"#/properties/stages/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid8 = _errs38 === errors;}else {var valid8 = true;}}}}}}else {validate30.errors = [{instancePath:instancePath+"/stages/" + i0,schemaPath:"#/properties/stages/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid7 = _errs30 === errors;if(!valid7){break;}}}}else {validate30.errors = [{instancePath:instancePath+"/stages",schemaPath:"#/properties/stages/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs28 === errors;}else {var valid0 = true;}if(valid0){if(data.variants !== undefined){let data17 = data.variants;const _errs44 = errors;if(errors === _errs44){if(Array.isArray(data17)){if(data17.length > 6){validate30.errors = [{instancePath:instancePath+"/variants",schemaPath:"#/properties/variants/maxItems",keyword:"maxItems",params:{limit: 6},message:"must NOT have more than 6 items"}];return false;}else {var valid13 = true;const len2 = data17.length;for(let i3=0; i3 64){validate30.errors = [{instancePath:instancePath+"/variants/" + i3+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data19)){validate30.errors = [{instancePath:instancePath+"/variants/" + i3+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate30.errors = [{instancePath:instancePath+"/variants/" + i3+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid14 = _errs49 === errors;}else {var valid14 = true;}if(valid14){if(data18.label !== undefined){const _errs52 = errors;if(!(validate31(data18.label, {instancePath:instancePath+"/variants/" + i3+"/label",parentData:data18,parentDataProperty:"label",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}var valid14 = _errs52 === errors;}else {var valid14 = true;}if(valid14){if(data18.icon !== undefined){let data21 = data18.icon;const _errs53 = errors;if(!(((((data21 === "school") || (data21 === "house")) || (data21 === "server")) || (data21 === "laptop")) || (data21 === "cloud"))){validate30.errors = [{instancePath:instancePath+"/variants/" + i3+"/icon",schemaPath:"#/properties/variants/items/properties/icon/enum",keyword:"enum",params:{allowedValues: schema51.properties.variants.items.properties.icon.enum},message:"must be equal to one of the allowed values"}];return false;}var valid14 = _errs53 === errors;}else {var valid14 = true;}if(valid14){if(data18.default !== undefined){const _errs54 = errors;if(typeof data18.default !== "boolean"){validate30.errors = [{instancePath:instancePath+"/variants/" + i3+"/default",schemaPath:"#/properties/variants/items/properties/default/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid14 = _errs54 === errors;}else {var valid14 = true;}}}}}}}else {validate30.errors = [{instancePath:instancePath+"/variants/" + i3,schemaPath:"#/properties/variants/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid13 = _errs46 === errors;if(!valid13){break;}}}}else {validate30.errors = [{instancePath:instancePath+"/variants",schemaPath:"#/properties/variants/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs44 === errors;}else {var valid0 = true;}if(valid0){if(data.readerVariables !== undefined){let data23 = data.readerVariables;const _errs56 = errors;if(errors === _errs56){if(Array.isArray(data23)){if(data23.length > 12){validate30.errors = [{instancePath:instancePath+"/readerVariables",schemaPath:"#/properties/readerVariables/maxItems",keyword:"maxItems",params:{limit: 12},message:"must NOT have more than 12 items"}];return false;}else {var valid16 = true;const len3 = data23.length;for(let i4=0; i4 64){validate30.errors = [{instancePath:instancePath+"/readerVariables/" + i4+"/example",schemaPath:"#/properties/readerVariables/items/properties/example/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/readerVariables/" + i4+"/example",schemaPath:"#/properties/readerVariables/items/properties/example/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid17 = _errs66 === errors;}else {var valid17 = true;}if(valid17){if(data24.pattern !== undefined){let data29 = data24.pattern;const _errs68 = errors;if(!((((data29 === "ipv4") || (data29 === "hostname")) || (data29 === "username")) || (data29 === "text"))){validate30.errors = [{instancePath:instancePath+"/readerVariables/" + i4+"/pattern",schemaPath:"#/properties/readerVariables/items/properties/pattern/enum",keyword:"enum",params:{allowedValues: schema51.properties.readerVariables.items.properties.pattern.enum},message:"must be equal to one of the allowed values"}];return false;}var valid17 = _errs68 === errors;}else {var valid17 = true;}}}}}}}}else {validate30.errors = [{instancePath:instancePath+"/readerVariables/" + i4,schemaPath:"#/properties/readerVariables/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid16 = _errs58 === errors;if(!valid16){break;}}}}else {validate30.errors = [{instancePath:instancePath+"/readerVariables",schemaPath:"#/properties/readerVariables/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs56 === errors;}else {var valid0 = true;}if(valid0){if(data.lab !== undefined){const _errs69 = errors;if(typeof data.lab !== "boolean"){validate30.errors = [{instancePath:instancePath+"/lab",schemaPath:"#/properties/lab/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs69 === errors;}else {var valid0 = true;}if(valid0){if(data.labGuide !== undefined){let data31 = data.labGuide;const _errs71 = errors;if(errors === _errs71){if(typeof data31 === "string"){if(!pattern28.test(data31)){validate30.errors = [{instancePath:instancePath+"/labGuide",schemaPath:"#/properties/labGuide/pattern",keyword:"pattern",params:{pattern: "^ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/labGuide",schemaPath:"#/properties/labGuide/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs71 === errors;}else {var valid0 = true;}if(valid0){if(data.theme !== undefined){const _errs73 = errors;if(!(validate25(data.theme, {instancePath:instancePath+"/theme",parentData:data,parentDataProperty:"theme",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate25.errors : vErrors.concat(validate25.errors);errors = vErrors.length;}var valid0 = _errs73 === errors;}else {var valid0 = true;}if(valid0){if(data.showcase !== undefined){let data33 = data.showcase;const _errs74 = errors;if(errors === _errs74){if(data33 && typeof data33 == "object" && !Array.isArray(data33)){let missing5;if((data33.art === undefined) && (missing5 = "art")){validate30.errors = [{instancePath:instancePath+"/showcase",schemaPath:"#/properties/showcase/required",keyword:"required",params:{missingProperty: missing5},message:"must have required property '"+missing5+"'"}];return false;}else {const _errs76 = errors;for(const key5 in data33){if(!((((((key5 === "art") || (key5 === "tone")) || (key5 === "highlights")) || (key5 === "title")) || (key5 === "label")) || (key5 === "summary"))){validate30.errors = [{instancePath:instancePath+"/showcase",schemaPath:"#/properties/showcase/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs76 === errors){if(data33.art !== undefined){let data34 = data33.art;const _errs77 = errors;if(!((data34 === "automation") || (data34 === "terminal"))){validate30.errors = [{instancePath:instancePath+"/showcase/art",schemaPath:"#/properties/showcase/properties/art/enum",keyword:"enum",params:{allowedValues: schema51.properties.showcase.properties.art.enum},message:"must be equal to one of the allowed values"}];return false;}var valid19 = _errs77 === errors;}else {var valid19 = true;}if(valid19){if(data33.tone !== undefined){let data35 = data33.tone;const _errs78 = errors;if(!((((((((data35 === "purple") || (data35 === "teal")) || (data35 === "coral")) || (data35 === "pink")) || (data35 === "blue")) || (data35 === "green")) || (data35 === "amber")) || (data35 === "gray"))){validate30.errors = [{instancePath:instancePath+"/showcase/tone",schemaPath:"#/properties/showcase/properties/tone/enum",keyword:"enum",params:{allowedValues: schema51.properties.showcase.properties.tone.enum},message:"must be equal to one of the allowed values"}];return false;}var valid19 = _errs78 === errors;}else {var valid19 = true;}if(valid19){if(data33.highlights !== undefined){let data36 = data33.highlights;const _errs79 = errors;if(errors === _errs79){if(Array.isArray(data36)){if(data36.length > 6){validate30.errors = [{instancePath:instancePath+"/showcase/highlights",schemaPath:"#/properties/showcase/properties/highlights/maxItems",keyword:"maxItems",params:{limit: 6},message:"must NOT have more than 6 items"}];return false;}else {var valid20 = true;const len4 = data36.length;for(let i5=0; i5 28){validate30.errors = [{instancePath:instancePath+"/showcase/highlights/" + i5,schemaPath:"#/properties/showcase/properties/highlights/items/maxLength",keyword:"maxLength",params:{limit: 28},message:"must NOT have more than 28 characters"}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/showcase/highlights/" + i5,schemaPath:"#/properties/showcase/properties/highlights/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid20 = _errs81 === errors;if(!valid20){break;}}}}else {validate30.errors = [{instancePath:instancePath+"/showcase/highlights",schemaPath:"#/properties/showcase/properties/highlights/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid19 = _errs79 === errors;}else {var valid19 = true;}if(valid19){if(data33.title !== undefined){const _errs83 = errors;if(!(validate31(data33.title, {instancePath:instancePath+"/showcase/title",parentData:data33,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}var valid19 = _errs83 === errors;}else {var valid19 = true;}if(valid19){if(data33.label !== undefined){let data39 = data33.label;const _errs84 = errors;if(!(validate31(data39, {instancePath:instancePath+"/showcase/label",parentData:data33,parentDataProperty:"label",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}if(errors === _errs84){if(typeof data39 === "string"){if(func2(data39) > 24){validate30.errors = [{instancePath:instancePath+"/showcase/label",schemaPath:"#/properties/showcase/properties/label/maxLength",keyword:"maxLength",params:{limit: 24},message:"must NOT have more than 24 characters"}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/showcase/label",schemaPath:"#/properties/showcase/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs84 === errors;}else {var valid19 = true;}if(valid19){if(data33.summary !== undefined){let data40 = data33.summary;const _errs86 = errors;const _errs87 = errors;const _errs89 = errors;const _errs90 = errors;if(typeof data40 === "string"){if(!pattern5.test(data40)){const err2 = {};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}var valid22 = _errs90 === errors;if(valid22){validate30.errors = [{instancePath:instancePath+"/showcase/summary",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs89;if(vErrors !== null){if(_errs89){vErrors.length = _errs89;}else {vErrors = null;}}}if(errors === _errs87){if(typeof data40 === "string"){if(func2(data40) > 2000){validate30.errors = [{instancePath:instancePath+"/showcase/summary",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data40) < 1){validate30.errors = [{instancePath:instancePath+"/showcase/summary",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate30.errors = [{instancePath:instancePath+"/showcase/summary",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === _errs86){if(typeof data40 === "string"){if(func2(data40) > 400){validate30.errors = [{instancePath:instancePath+"/showcase/summary",schemaPath:"#/properties/showcase/properties/summary/maxLength",keyword:"maxLength",params:{limit: 400},message:"must NOT have more than 400 characters"}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/showcase/summary",schemaPath:"#/properties/showcase/properties/summary/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs86 === errors;}else {var valid19 = true;}}}}}}}}}else {validate30.errors = [{instancePath:instancePath+"/showcase",schemaPath:"#/properties/showcase/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs74 === errors;}else {var valid0 = true;}}}}}}}}}}}}}}}}}}else {validate30.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate30.errors = vErrors;return errors === 0;}validate30.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate55(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate55.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate55.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate55.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate55.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate55.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate55.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate55.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate55.errors = vErrors;return errors === 0;}validate55.evaluated = {"dynamicProps":false,"dynamicItems":false};const schema86 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/source/objectives.schema.json","type":"array","items":{"type":"object","additionalProperties":false,"required":["id","chapter","lessons","labs","challenges"],"properties":{"id":{"type":"string","pattern":"^ch[0-9]{2}\\.[a-z0-9]+(?:-[a-z0-9]+)*$"},"chapter":{"$ref":"../common.schema.json#/$defs/chapterId"},"lessons":{"type":"array","items":{"$ref":"#/$defs/pageRef"}},"labs":{"type":"array","items":{"$ref":"#/$defs/pageRef"}},"challenges":{"type":"array","items":{"$ref":"../common.schema.json#/$defs/id"}}}},"$defs":{"pageRef":{"type":"string","pattern":"^ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*$"}}};const schema88 = {"type":"string","pattern":"^ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*$"};const pattern41 = new RegExp("^ch[0-9]{2}\\.[a-z0-9]+(?:-[a-z0-9]+)*$", "u");const pattern37 = new RegExp("^ch[0-9]{2}$", "u");function validate61(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/source/objectives.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate61.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(Array.isArray(data)){var valid0 = true;const len0 = data.length;for(let i0=0; i0 64){validate61.errors = [{instancePath:instancePath+"/" + i0+"/challenges/" + i3,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data8)){validate61.errors = [{instancePath:instancePath+"/" + i0+"/challenges/" + i3,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate61.errors = [{instancePath:instancePath+"/" + i0+"/challenges/" + i3,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs21 === errors;if(!valid7){break;}}}else {validate61.errors = [{instancePath:instancePath+"/" + i0+"/challenges",schemaPath:"#/items/properties/challenges/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid1 = _errs19 === errors;}else {var valid1 = true;}}}}}}}}else {validate61.errors = [{instancePath:instancePath+"/" + i0,schemaPath:"#/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs1 === errors;if(!valid0){break;}}}else {validate61.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}validate61.errors = vErrors;return errors === 0;}validate61.evaluated = {"items":true,"dynamicProps":false,"dynamicItems":false};const pattern43 = new RegExp("^q-[a-z0-9]{6,32}$", "u");const pattern46 = new RegExp("^[a-f0-9]{1,16}$", "u");const pattern56 = new RegExp("^(?:ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*|home|details)$", "u");const pattern61 = new RegExp("^#/ch[0-9]{2}/[a-z0-9-]+$", "u");function validate53(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/bundle/manifest.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate53.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((((((data.apiVersion === undefined) && (missing0 = "apiVersion")) || ((data.program === undefined) && (missing0 = "program"))) || ((data.chapters === undefined) && (missing0 = "chapters"))) || ((data.objectives === undefined) && (missing0 = "objectives"))) || ((data.pages === undefined) && (missing0 = "pages"))) || ((data.search === undefined) && (missing0 = "search"))){validate53.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((((((((key0 === "apiVersion") || (key0 === "program")) || (key0 === "chapters")) || (key0 === "objectives")) || (key0 === "pages")) || (key0 === "search")) || (key0 === "legacy")) || (key0 === "labReports"))){validate53.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.apiVersion !== undefined){const _errs2 = errors;if(1 !== data.apiVersion){validate53.errors = [{instancePath:instancePath+"/apiVersion",schemaPath:"../common.schema.json#/$defs/apiVersion/const",keyword:"const",params:{allowedValue: 1},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.program !== undefined){const _errs4 = errors;if(!(validate30(data.program, {instancePath:instancePath+"/program",parentData:data,parentDataProperty:"program",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate30.errors : vErrors.concat(validate30.errors);errors = vErrors.length;}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.chapters !== undefined){let data2 = data.chapters;const _errs5 = errors;if(errors === _errs5){if(Array.isArray(data2)){if(data2.length > 99){validate53.errors = [{instancePath:instancePath+"/chapters",schemaPath:"#/properties/chapters/maxItems",keyword:"maxItems",params:{limit: 99},message:"must NOT have more than 99 items"}];return false;}else {var valid2 = true;const len0 = data2.length;for(let i0=0; i0 99 || isNaN(data5)){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/number",schemaPath:"#/properties/chapters/items/properties/number/maximum",keyword:"maximum",params:{comparison: "<=", limit: 99},message:"must be <= 99"}];return false;}else {if(data5 < 1 || isNaN(data5)){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/number",schemaPath:"#/properties/chapters/items/properties/number/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}}var valid3 = _errs13 === errors;}else {var valid3 = true;}if(valid3){if(data3.title !== undefined){const _errs15 = errors;if(!(validate55(data3.title, {instancePath:instancePath+"/chapters/" + i0+"/title",parentData:data3,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate55.errors : vErrors.concat(validate55.errors);errors = vErrors.length;}var valid3 = _errs15 === errors;}else {var valid3 = true;}if(valid3){if(data3.goal !== undefined){let data7 = data3.goal;const _errs16 = errors;const _errs17 = errors;const _errs19 = errors;const _errs20 = errors;if(typeof data7 === "string"){if(!pattern5.test(data7)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid6 = _errs20 === errors;if(valid6){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/goal",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs19;if(vErrors !== null){if(_errs19){vErrors.length = _errs19;}else {vErrors = null;}}}if(errors === _errs17){if(typeof data7 === "string"){if(func2(data7) > 2000){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/goal",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data7) < 1){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/goal",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/goal",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs16 === errors;}else {var valid3 = true;}if(valid3){if(data3.objectives !== undefined){let data8 = data3.objectives;const _errs21 = errors;if(errors === _errs21){if(Array.isArray(data8)){var valid7 = true;const len1 = data8.length;for(let i1=0; i1 2000){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/objectives/" + i1,schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data9) < 1){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/objectives/" + i1,schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/objectives/" + i1,schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs23 === errors;if(!valid7){break;}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/objectives",schemaPath:"#/properties/chapters/items/properties/objectives/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid3 = _errs21 === errors;}else {var valid3 = true;}if(valid3){if(data3.objectiveIds !== undefined){let data10 = data3.objectiveIds;const _errs28 = errors;if(errors === _errs28){if(Array.isArray(data10)){var valid10 = true;const len2 = data10.length;for(let i2=0; i2 60){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections",schemaPath:"#/properties/chapters/items/properties/sections/maxItems",keyword:"maxItems",params:{limit: 60},message:"must NOT have more than 60 items"}];return false;}else {var valid13 = true;const len4 = data16.length;for(let i4=0; i4 64){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/slug",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data18)){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/slug",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/slug",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid14 = _errs44 === errors;}else {var valid14 = true;}if(valid14){if(data17.title !== undefined){const _errs47 = errors;if(!(validate55(data17.title, {instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/title",parentData:data17,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate55.errors : vErrors.concat(validate55.errors);errors = vErrors.length;}var valid14 = _errs47 === errors;}else {var valid14 = true;}if(valid14){if(data17.kind !== undefined){let data20 = data17.kind;const _errs48 = errors;if(!(((((data20 === "lesson") || (data20 === "lab")) || (data20 === "quiz")) || (data20 === "summary")) || (data20 === "reference"))){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/kind",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/kind/enum",keyword:"enum",params:{allowedValues: schema70.properties.chapters.items.properties.sections.items.properties.kind.enum},message:"must be equal to one of the allowed values"}];return false;}var valid14 = _errs48 === errors;}else {var valid14 = true;}if(valid14){if(data17.minutes !== undefined){let data21 = data17.minutes;const _errs49 = errors;const _errs50 = errors;if(!(((typeof data21 == "number") && (!(data21 % 1) && !isNaN(data21))) && (isFinite(data21)))){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/minutes",schemaPath:"../common.schema.json#/$defs/minutes/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs50){if((typeof data21 == "number") && (isFinite(data21))){if(data21 > 600 || isNaN(data21)){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/minutes",schemaPath:"../common.schema.json#/$defs/minutes/maximum",keyword:"maximum",params:{comparison: "<=", limit: 600},message:"must be <= 600"}];return false;}else {if(data21 < 1 || isNaN(data21)){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/minutes",schemaPath:"../common.schema.json#/$defs/minutes/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}}var valid14 = _errs49 === errors;}else {var valid14 = true;}if(valid14){if(data17.activities !== undefined){let data22 = data17.activities;const _errs52 = errors;if(errors === _errs52){if(data22 && typeof data22 == "object" && !Array.isArray(data22)){const _errs54 = errors;for(const key3 in data22){if(!(((key3 === "quizzes") || (key3 === "tasks")) || (key3 === "practice"))){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs54 === errors){if(data22.quizzes !== undefined){let data23 = data22.quizzes;const _errs55 = errors;if(errors === _errs55){if(Array.isArray(data23)){var valid18 = true;const len5 = data23.length;for(let i5=0; i5 64){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/quizId",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data26)){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/quizId",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/quizId",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs62 === errors;}else {var valid19 = true;}if(valid19){if(data24.prompt !== undefined){let data27 = data24.prompt;const _errs65 = errors;const _errs66 = errors;const _errs68 = errors;const _errs69 = errors;if(typeof data27 === "string"){if(!pattern8.test(data27)){const err2 = {};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}var valid22 = _errs69 === errors;if(valid22){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/prompt",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs68;if(vErrors !== null){if(_errs68){vErrors.length = _errs68;}else {vErrors = null;}}}if(errors === _errs66){if(typeof data27 === "string"){if(func2(data27) > 4000){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/prompt",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data27) < 1){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/prompt",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/prompt",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs65 === errors;}else {var valid19 = true;}if(valid19){if(data24.revision !== undefined){let data28 = data24.revision;const _errs70 = errors;if(errors === _errs70){if(typeof data28 === "string"){if(!pattern46.test(data28)){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/revision",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/properties/quizzes/items/properties/revision/pattern",keyword:"pattern",params:{pattern: "^[a-f0-9]{1,16}$"},message:"must match pattern \""+"^[a-f0-9]{1,16}$"+"\""}];return false;}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/revision",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/properties/quizzes/items/properties/revision/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs70 === errors;}else {var valid19 = true;}}}}}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5,schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/properties/quizzes/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid18 = _errs57 === errors;if(!valid18){break;}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/properties/quizzes/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid17 = _errs55 === errors;}else {var valid17 = true;}if(valid17){if(data22.tasks !== undefined){let data29 = data22.tasks;const _errs72 = errors;if(errors === _errs72){if(Array.isArray(data29)){var valid23 = true;const len6 = data29.length;for(let i6=0; i6 64){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks/" + i6+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data31)){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks/" + i6+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks/" + i6+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid24 = _errs77 === errors;}else {var valid24 = true;}if(valid24){if(data30.labId !== undefined){let data32 = data30.labId;const _errs80 = errors;const _errs81 = errors;if(errors === _errs81){if(typeof data32 === "string"){if(func2(data32) > 64){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks/" + i6+"/labId",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data32)){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks/" + i6+"/labId",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks/" + i6+"/labId",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid24 = _errs80 === errors;}else {var valid24 = true;}if(valid24){if(data30.title !== undefined){const _errs83 = errors;if(!(validate55(data30.title, {instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks/" + i6+"/title",parentData:data30,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate55.errors : vErrors.concat(validate55.errors);errors = vErrors.length;}var valid24 = _errs83 === errors;}else {var valid24 = true;}}}}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks/" + i6,schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/properties/tasks/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid23 = _errs74 === errors;if(!valid23){break;}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/properties/tasks/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid17 = _errs72 === errors;}else {var valid17 = true;}if(valid17){if(data22.practice !== undefined){let data34 = data22.practice;const _errs84 = errors;if(errors === _errs84){if(Array.isArray(data34)){var valid27 = true;const len7 = data34.length;for(let i7=0; i7 64){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/practice/" + i7+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data36)){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/practice/" + i7+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/practice/" + i7+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid28 = _errs89 === errors;}else {var valid28 = true;}if(valid28){if(data35.objective !== undefined){let data37 = data35.objective;const _errs92 = errors;const _errs93 = errors;if(errors === _errs93){if(typeof data37 === "string"){if(!pattern41.test(data37)){validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/practice/" + i7+"/objective",schemaPath:"../common.schema.json#/$defs/objectiveId/pattern",keyword:"pattern",params:{pattern: "^ch[0-9]{2}\\.[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^ch[0-9]{2}\\.[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/practice/" + i7+"/objective",schemaPath:"../common.schema.json#/$defs/objectiveId/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid28 = _errs92 === errors;}else {var valid28 = true;}if(valid28){if(data35.title !== undefined){const _errs95 = errors;if(!(validate55(data35.title, {instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/practice/" + i7+"/title",parentData:data35,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate55.errors : vErrors.concat(validate55.errors);errors = vErrors.length;}var valid28 = _errs95 === errors;}else {var valid28 = true;}}}}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/practice/" + i7,schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/properties/practice/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid27 = _errs86 === errors;if(!valid27){break;}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/practice",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/properties/practice/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid17 = _errs84 === errors;}else {var valid17 = true;}}}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid14 = _errs52 === errors;}else {var valid14 = true;}}}}}}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4,schemaPath:"#/properties/chapters/items/properties/sections/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid13 = _errs41 === errors;if(!valid13){break;}}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections",schemaPath:"#/properties/chapters/items/properties/sections/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid3 = _errs39 === errors;}else {var valid3 = true;}}}}}}}}}}}}}else {validate53.errors = [{instancePath:instancePath+"/chapters/" + i0,schemaPath:"#/properties/chapters/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs7 === errors;if(!valid2){break;}}}}else {validate53.errors = [{instancePath:instancePath+"/chapters",schemaPath:"#/properties/chapters/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.objectives !== undefined){const _errs96 = errors;if(!(validate61(data.objectives, {instancePath:instancePath+"/objectives",parentData:data,parentDataProperty:"objectives",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate61.errors : vErrors.concat(validate61.errors);errors = vErrors.length;}var valid0 = _errs96 === errors;}else {var valid0 = true;}if(valid0){if(data.pages !== undefined){let data40 = data.pages;const _errs97 = errors;if(errors === _errs97){if(data40 && typeof data40 == "object" && !Array.isArray(data40)){for(const key7 in data40){const _errs99 = errors;if(typeof key7 === "string"){if(!pattern56.test(key7)){const err3 = {instancePath:instancePath+"/pages",schemaPath:"#/properties/pages/propertyNames/pattern",keyword:"pattern",params:{pattern: "^(?:ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*|home|details)$"},message:"must match pattern \""+"^(?:ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*|home|details)$"+"\"",propertyName:key7};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}var valid31 = _errs99 === errors;if(!valid31){const err4 = {instancePath:instancePath+"/pages",schemaPath:"#/properties/pages/propertyNames",keyword:"propertyNames",params:{propertyName: key7},message:"property name must be valid"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;validate53.errors = vErrors;return false;break;}}if(valid31){for(const key8 in data40){let data41 = data40[key8];const _errs101 = errors;const _errs102 = errors;if(errors === _errs102){if(typeof data41 === "string"){if(!pattern17.test(data41)){validate53.errors = [{instancePath:instancePath+"/pages/" + key8.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"site.schema.json#/$defs/hashedUrl/pattern",keyword:"pattern",params:{pattern: "^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"},message:"must match pattern \""+"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"+"\""}];return false;}}else {validate53.errors = [{instancePath:instancePath+"/pages/" + key8.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"site.schema.json#/$defs/hashedUrl/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid32 = _errs101 === errors;if(!valid32){break;}}}}else {validate53.errors = [{instancePath:instancePath+"/pages",schemaPath:"#/properties/pages/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs97 === errors;}else {var valid0 = true;}if(valid0){if(data.search !== undefined){let data42 = data.search;const _errs104 = errors;const _errs105 = errors;if(errors === _errs105){if(typeof data42 === "string"){if(!pattern17.test(data42)){validate53.errors = [{instancePath:instancePath+"/search",schemaPath:"site.schema.json#/$defs/hashedUrl/pattern",keyword:"pattern",params:{pattern: "^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"},message:"must match pattern \""+"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"+"\""}];return false;}}else {validate53.errors = [{instancePath:instancePath+"/search",schemaPath:"site.schema.json#/$defs/hashedUrl/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs104 === errors;}else {var valid0 = true;}if(valid0){if(data.legacy !== undefined){let data43 = data.legacy;const _errs107 = errors;const _errs108 = errors;if(errors === _errs108){if(typeof data43 === "string"){if(!pattern17.test(data43)){validate53.errors = [{instancePath:instancePath+"/legacy",schemaPath:"site.schema.json#/$defs/hashedUrl/pattern",keyword:"pattern",params:{pattern: "^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"},message:"must match pattern \""+"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"+"\""}];return false;}}else {validate53.errors = [{instancePath:instancePath+"/legacy",schemaPath:"site.schema.json#/$defs/hashedUrl/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs107 === errors;}else {var valid0 = true;}if(valid0){if(data.labReports !== undefined){let data44 = data.labReports;const _errs110 = errors;if(errors === _errs110){if(data44 && typeof data44 == "object" && !Array.isArray(data44)){let missing6;if((data44.exercises === undefined) && (missing6 = "exercises")){validate53.errors = [{instancePath:instancePath+"/labReports",schemaPath:"#/properties/labReports/required",keyword:"required",params:{missingProperty: missing6},message:"must have required property '"+missing6+"'"}];return false;}else {const _errs112 = errors;for(const key9 in data44){if(!(key9 === "exercises")){validate53.errors = [{instancePath:instancePath+"/labReports",schemaPath:"#/properties/labReports/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key9},message:"must NOT have additional properties"}];return false;break;}}if(_errs112 === errors){if(data44.exercises !== undefined){let data45 = data44.exercises;const _errs113 = errors;if(errors === _errs113){if(data45 && typeof data45 == "object" && !Array.isArray(data45)){if(Object.keys(data45).length > 500){validate53.errors = [{instancePath:instancePath+"/labReports/exercises",schemaPath:"#/properties/labReports/properties/exercises/maxProperties",keyword:"maxProperties",params:{limit: 500},message:"must NOT have more than 500 properties"}];return false;}else {for(const key10 in data45){const _errs115 = errors;const _errs116 = errors;if(errors === _errs116){if(typeof key10 === "string"){if(func2(key10) > 64){const err5 = {instancePath:instancePath+"/labReports/exercises",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters",propertyName:key10};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}else {if(!pattern18.test(key10)){const err6 = {instancePath:instancePath+"/labReports/exercises",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\"",propertyName:key10};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}}else {const err7 = {instancePath:instancePath+"/labReports/exercises",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string",propertyName:key10};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}var valid37 = _errs115 === errors;if(!valid37){const err8 = {instancePath:instancePath+"/labReports/exercises",schemaPath:"#/properties/labReports/properties/exercises/propertyNames",keyword:"propertyNames",params:{propertyName: key10},message:"property name must be valid"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;validate53.errors = vErrors;return false;break;}}if(valid37){for(const key11 in data45){let data46 = data45[key11];const _errs119 = errors;if(errors === _errs119){if(data46 && typeof data46 == "object" && !Array.isArray(data46)){let missing7;if((((data46.version === undefined) && (missing7 = "version")) || ((data46.lesson === undefined) && (missing7 = "lesson"))) || ((data46.checkpoints === undefined) && (missing7 = "checkpoints"))){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/required",keyword:"required",params:{missingProperty: missing7},message:"must have required property '"+missing7+"'"}];return false;}else {const _errs121 = errors;for(const key12 in data46){if(!(((key12 === "version") || (key12 === "lesson")) || (key12 === "checkpoints"))){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key12},message:"must NOT have additional properties"}];return false;break;}}if(_errs121 === errors){if(data46.version !== undefined){let data47 = data46.version;const _errs122 = errors;if(!(((typeof data47 == "number") && (!(data47 % 1) && !isNaN(data47))) && (isFinite(data47)))){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/version",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/version/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs122){if((typeof data47 == "number") && (isFinite(data47))){if(data47 < 1 || isNaN(data47)){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/version",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/version/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}var valid40 = _errs122 === errors;}else {var valid40 = true;}if(valid40){if(data46.lesson !== undefined){let data48 = data46.lesson;const _errs124 = errors;if(errors === _errs124){if(typeof data48 === "string"){if(!pattern61.test(data48)){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/lesson",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/lesson/pattern",keyword:"pattern",params:{pattern: "^#/ch[0-9]{2}/[a-z0-9-]+$"},message:"must match pattern \""+"^#/ch[0-9]{2}/[a-z0-9-]+$"+"\""}];return false;}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/lesson",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/lesson/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid40 = _errs124 === errors;}else {var valid40 = true;}if(valid40){if(data46.checkpoints !== undefined){let data49 = data46.checkpoints;const _errs126 = errors;if(errors === _errs126){if(data49 && typeof data49 == "object" && !Array.isArray(data49)){let missing8;if((data49.final === undefined) && (missing8 = "final")){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/required",keyword:"required",params:{missingProperty: missing8},message:"must have required property '"+missing8+"'"}];return false;}else {for(const key13 in data49){let data50 = data49[key13];const _errs129 = errors;if(errors === _errs129){if(data50 && typeof data50 == "object" && !Array.isArray(data50)){let missing9;if(((((data50.files === undefined) && (missing9 = "files")) || ((data50.groups === undefined) && (missing9 = "groups"))) || ((data50.local === undefined) && (missing9 = "local"))) || ((data50.probes === undefined) && (missing9 = "probes"))){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/required",keyword:"required",params:{missingProperty: missing9},message:"must have required property '"+missing9+"'"}];return false;}else {const _errs131 = errors;for(const key14 in data50){if(!((((key14 === "files") || (key14 === "groups")) || (key14 === "local")) || (key14 === "probes"))){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key14},message:"must NOT have additional properties"}];return false;break;}}if(_errs131 === errors){if(data50.files !== undefined){let data51 = data50.files;const _errs132 = errors;if(errors === _errs132){if(Array.isArray(data51)){if(data51.length > 500){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/files",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/files/maxItems",keyword:"maxItems",params:{limit: 500},message:"must NOT have more than 500 items"}];return false;}else {var valid43 = true;const len8 = data51.length;for(let i8=0; i8 240){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/files/" + i8,schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/files/items/maxLength",keyword:"maxLength",params:{limit: 240},message:"must NOT have more than 240 characters"}];return false;}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/files/" + i8,schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/files/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid43 = _errs134 === errors;if(!valid43){break;}}}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/files",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/files/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid42 = _errs132 === errors;}else {var valid42 = true;}if(valid42){if(data50.groups !== undefined){let data53 = data50.groups;const _errs136 = errors;if(errors === _errs136){if(data53 && typeof data53 == "object" && !Array.isArray(data53)){for(const key15 in data53){let data54 = data53[key15];const _errs139 = errors;if(errors === _errs139){if(Array.isArray(data54)){if(data54.length > 500){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/groups/" + key15.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/groups/additionalProperties/maxItems",keyword:"maxItems",params:{limit: 500},message:"must NOT have more than 500 items"}];return false;}else {var valid45 = true;const len9 = data54.length;for(let i9=0; i9 240){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/groups/" + key15.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i9,schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/groups/additionalProperties/items/maxLength",keyword:"maxLength",params:{limit: 240},message:"must NOT have more than 240 characters"}];return false;}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/groups/" + key15.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i9,schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/groups/additionalProperties/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid45 = _errs141 === errors;if(!valid45){break;}}}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/groups/" + key15.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/groups/additionalProperties/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid44 = _errs139 === errors;if(!valid44){break;}}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/groups",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/groups/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid42 = _errs136 === errors;}else {var valid42 = true;}if(valid42){if(data50.local !== undefined){let data56 = data50.local;const _errs143 = errors;if(errors === _errs143){if(Array.isArray(data56)){if(data56.length > 40){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/local",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/local/maxItems",keyword:"maxItems",params:{limit: 40},message:"must NOT have more than 40 items"}];return false;}else {var valid46 = true;const len10 = data56.length;for(let i10=0; i10 64){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/local/" + i10+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data58)){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/local/" + i10+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/local/" + i10+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/local/" + i10,schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/local/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid46 = _errs145 === errors;if(!valid46){break;}}}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/local",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/local/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid42 = _errs143 === errors;}else {var valid42 = true;}if(valid42){if(data50.probes !== undefined){let data59 = data50.probes;const _errs151 = errors;if(errors === _errs151){if(Array.isArray(data59)){if(data59.length > 40){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/probes/maxItems",keyword:"maxItems",params:{limit: 40},message:"must NOT have more than 40 items"}];return false;}else {var valid49 = true;const len11 = data59.length;for(let i11=0; i11 64){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes/" + i11+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data61)){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes/" + i11+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes/" + i11+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid50 = _errs156 === errors;}else {var valid50 = true;}if(valid50){if(data60.targets !== undefined){let data62 = data60.targets;const _errs159 = errors;if(errors === _errs159){if(Array.isArray(data62)){if(data62.length > 500){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes/" + i11+"/targets",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/probes/items/properties/targets/maxItems",keyword:"maxItems",params:{limit: 500},message:"must NOT have more than 500 items"}];return false;}else {var valid52 = true;const len12 = data62.length;for(let i12=0; i12 240){validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes/" + i11+"/targets/" + i12,schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/probes/items/properties/targets/items/maxLength",keyword:"maxLength",params:{limit: 240},message:"must NOT have more than 240 characters"}];return false;}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes/" + i11+"/targets/" + i12,schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/probes/items/properties/targets/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid52 = _errs161 === errors;if(!valid52){break;}}}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes/" + i11+"/targets",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/probes/items/properties/targets/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid50 = _errs159 === errors;}else {var valid50 = true;}}}}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes/" + i11,schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/probes/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid49 = _errs153 === errors;if(!valid49){break;}}}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/probes/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid42 = _errs151 === errors;}else {var valid42 = true;}}}}}}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid41 = _errs129 === errors;if(!valid41){break;}}}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid40 = _errs126 === errors;}else {var valid40 = true;}}}}}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid39 = _errs119 === errors;if(!valid39){break;}}}}}else {validate53.errors = [{instancePath:instancePath+"/labReports/exercises",schemaPath:"#/properties/labReports/properties/exercises/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}}}}}else {validate53.errors = [{instancePath:instancePath+"/labReports",schemaPath:"#/properties/labReports/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs110 === errors;}else {var valid0 = true;}}}}}}}}}}}else {validate53.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate53.errors = vErrors;return errors === 0;}validate53.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validatePage = validate63;const schema97 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/bundle/page.schema.json","type":"object","additionalProperties":false,"required":["apiVersion","key","title","kind","toc","data","tree"],"properties":{"apiVersion":{"$ref":"../common.schema.json#/$defs/apiVersion"},"key":{"type":"string","pattern":"^(?:ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*|home|details|site-home)$"},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"kind":{"enum":["lesson","lab","quiz","summary","reference","landing"]},"minutes":{"$ref":"../common.schema.json#/$defs/minutes"},"description":{"$ref":"../common.schema.json#/$defs/text"},"toc":{"type":"array","maxItems":200,"items":{"type":"object","additionalProperties":false,"required":["id","text","depth"],"properties":{"id":{"$ref":"#/$defs/anchorId"},"text":{"$ref":"../common.schema.json#/$defs/text"},"depth":{"enum":[2,3]}}}},"data":{"type":"object","propertyNames":{"$ref":"../common.schema.json#/$defs/dataRef"}},"tree":{"$ref":"#/$defs/children"},"eyebrow":{"$ref":"../common.schema.json#/$defs/shortText"}},"$defs":{"anchorId":{"type":"string","pattern":"^[a-z0-9_-][a-z0-9_-]{0,119}$"},"children":{"type":"array","maxItems":5000,"items":{"$ref":"#/$defs/node"}},"node":{"oneOf":[{"$ref":"#/$defs/text"},{"$ref":"#/$defs/element"},{"$ref":"#/$defs/code"},{"$ref":"#/$defs/tag"}]},"text":{"type":"object","additionalProperties":false,"required":["t","v"],"properties":{"t":{"const":"text"},"v":{"type":"string","maxLength":20000}}},"element":{"type":"object","additionalProperties":false,"required":["t","tag"],"properties":{"t":{"const":"el"},"tag":{"enum":["p","h2","h3","h4","ul","ol","li","blockquote","strong","em","del","code","a","br","hr","table","thead","tbody","tr","th","td","img"]},"attrs":{"type":"object","additionalProperties":false,"properties":{"id":{"$ref":"#/$defs/anchorId"},"href":{"$ref":"../common.schema.json#/$defs/url"},"src":{"type":"string","pattern":"^assets/[a-f0-9]{8,64}\\.(?:png|jpe?g|webp|avif|gif|svg)$"},"alt":{"type":"string","maxLength":300},"align":{"enum":["left","center","right"]},"start":{"type":"integer","minimum":0},"checked":{"type":"boolean"}}},"c":{"$ref":"#/$defs/children"}}},"code":{"type":"object","additionalProperties":false,"required":["t","lang","lines"],"properties":{"t":{"const":"code"},"lang":{"type":"string","pattern":"^[a-z0-9+#-]{1,24}$"},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"highlight":{"type":"array","items":{"type":"integer","minimum":1}},"lines":{"type":"array","maxItems":5000,"items":{"type":"array","maxItems":2000,"items":{"type":"object","additionalProperties":false,"required":["v"],"properties":{"v":{"type":"string","maxLength":20000},"l":{"$ref":"#/$defs/tokenColor"},"d":{"$ref":"#/$defs/tokenColor"},"i":{"const":true}}}}}}},"tokenColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"tag":{"type":"object","additionalProperties":false,"required":["t","name"],"properties":{"t":{"const":"tag"},"name":{"type":"string","enum":["admin-module-finder","annotated-yaml","assessment-timer","block-flow","build-roadmap","callout","card","cards","check-mode-sim","column","columns","command-vs-module","condition-playground","cron-builder","custom-fact-builder","data-explorer","diagram","error-decoder","fact-gathering","facts-explorer","feature-grid","fetch-layout","file-edit-simulator","file-module-chooser","flashcards","flow-map","fqcn-explorer","glob-tester","glossary","grep-tester","group-vars-resolver","handler-timeline","hero","host-pattern-tester","idempotency-demo","inventory-explorer","kbd","lab","lab-challenge","lab-finish","lab-network-map","lab-notes","lab-setup","lead","loop-unroller","magic-variables","mode-calculator","module-explorer","objectives","play-order","play-recap","practice","precedence-resolver","program-cards","project-tree","quiz","range-expander","reader-variables","readiness-checklist","reuse-simulator","reveal","role-anatomy","role-var-resolver","run-stages","shell-practice","snapshot-chain","starter-files","stat-explorer","step","steps","tab","tabs","task","task-outcome","template-playground","term","terminal-demo","variable-name-checker","variable-precedence","variable-substitution","variant","variant-group","variant-switch","vault-commands","verbosity","yaml-multiline"]},"attrs":{"type":"object","propertyNames":{"pattern":"^[a-z][a-zA-Z0-9]*$"},"additionalProperties":{"oneOf":[{"type":"string","maxLength":4000},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":50,"items":{"type":"string","maxLength":400}}]}},"c":{"$ref":"#/$defs/children"}}}}};const schema103 = {"type":"string","pattern":"^[a-z0-9_-][a-z0-9_-]{0,119}$"};const schema105 = {"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":64};const pattern64 = new RegExp("^(?:ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*|home|details|site-home)$", "u");const pattern67 = new RegExp("^[a-z0-9_-][a-z0-9_-]{0,119}$", "u");function validate64(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate64.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate64.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate64.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate64.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate64.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate64.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate64.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate64.errors = vErrors;return errors === 0;}validate64.evaluated = {"dynamicProps":false,"dynamicItems":false};const schema106 = {"type":"array","maxItems":5000,"items":{"$ref":"#/$defs/node"}};const schema107 = {"oneOf":[{"$ref":"#/$defs/text"},{"$ref":"#/$defs/element"},{"$ref":"#/$defs/code"},{"$ref":"#/$defs/tag"}]};const schema108 = {"type":"object","additionalProperties":false,"required":["t","v"],"properties":{"t":{"const":"text"},"v":{"type":"string","maxLength":20000}}};const schema109 = {"type":"object","additionalProperties":false,"required":["t","tag"],"properties":{"t":{"const":"el"},"tag":{"enum":["p","h2","h3","h4","ul","ol","li","blockquote","strong","em","del","code","a","br","hr","table","thead","tbody","tr","th","td","img"]},"attrs":{"type":"object","additionalProperties":false,"properties":{"id":{"$ref":"#/$defs/anchorId"},"href":{"$ref":"../common.schema.json#/$defs/url"},"src":{"type":"string","pattern":"^assets/[a-f0-9]{8,64}\\.(?:png|jpe?g|webp|avif|gif|svg)$"},"alt":{"type":"string","maxLength":300},"align":{"enum":["left","center","right"]},"start":{"type":"integer","minimum":0},"checked":{"type":"boolean"}}},"c":{"$ref":"#/$defs/children"}}};const pattern72 = new RegExp("^assets/[a-f0-9]{8,64}\\.(?:png|jpe?g|webp|avif|gif|svg)$", "u");const wrapper0 = {validate: validate66};function validate68(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate68.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.t === undefined) && (missing0 = "t")) || ((data.tag === undefined) && (missing0 = "tag"))){validate68.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((((key0 === "t") || (key0 === "tag")) || (key0 === "attrs")) || (key0 === "c"))){validate68.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.t !== undefined){const _errs2 = errors;if("el" !== data.t){validate68.errors = [{instancePath:instancePath+"/t",schemaPath:"#/properties/t/const",keyword:"const",params:{allowedValue: "el"},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.tag !== undefined){let data1 = data.tag;const _errs3 = errors;if(!((((((((((((((((((((((data1 === "p") || (data1 === "h2")) || (data1 === "h3")) || (data1 === "h4")) || (data1 === "ul")) || (data1 === "ol")) || (data1 === "li")) || (data1 === "blockquote")) || (data1 === "strong")) || (data1 === "em")) || (data1 === "del")) || (data1 === "code")) || (data1 === "a")) || (data1 === "br")) || (data1 === "hr")) || (data1 === "table")) || (data1 === "thead")) || (data1 === "tbody")) || (data1 === "tr")) || (data1 === "th")) || (data1 === "td")) || (data1 === "img"))){validate68.errors = [{instancePath:instancePath+"/tag",schemaPath:"#/properties/tag/enum",keyword:"enum",params:{allowedValues: schema109.properties.tag.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.attrs !== undefined){let data2 = data.attrs;const _errs4 = errors;if(errors === _errs4){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){const _errs6 = errors;for(const key1 in data2){if(!(((((((key1 === "id") || (key1 === "href")) || (key1 === "src")) || (key1 === "alt")) || (key1 === "align")) || (key1 === "start")) || (key1 === "checked"))){validate68.errors = [{instancePath:instancePath+"/attrs",schemaPath:"#/properties/attrs/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs6 === errors){if(data2.id !== undefined){let data3 = data2.id;const _errs7 = errors;const _errs8 = errors;if(errors === _errs8){if(typeof data3 === "string"){if(!pattern67.test(data3)){validate68.errors = [{instancePath:instancePath+"/attrs/id",schemaPath:"#/$defs/anchorId/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9_-][a-z0-9_-]{0,119}$"},message:"must match pattern \""+"^[a-z0-9_-][a-z0-9_-]{0,119}$"+"\""}];return false;}}else {validate68.errors = [{instancePath:instancePath+"/attrs/id",schemaPath:"#/$defs/anchorId/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs7 === errors;}else {var valid1 = true;}if(valid1){if(data2.href !== undefined){let data4 = data2.href;const _errs10 = errors;const _errs11 = errors;if(errors === _errs11){if(typeof data4 === "string"){if(func2(data4) > 2048){validate68.errors = [{instancePath:instancePath+"/attrs/href",schemaPath:"../common.schema.json#/$defs/url/maxLength",keyword:"maxLength",params:{limit: 2048},message:"must NOT have more than 2048 characters"}];return false;}else {if(!pattern7.test(data4)){validate68.errors = [{instancePath:instancePath+"/attrs/href",schemaPath:"../common.schema.json#/$defs/url/pattern",keyword:"pattern",params:{pattern: "^(?:#[/A-Za-z0-9._~%!$&'()*+,;=:@?#-]*|lab/[a-z0-9][a-z0-9._/-]*|https://[^\\s<>\"]+|mailto:[^\\s<>\"]+)$"},message:"must match pattern \""+"^(?:#[/A-Za-z0-9._~%!$&'()*+,;=:@?#-]*|lab/[a-z0-9][a-z0-9._/-]*|https://[^\\s<>\"]+|mailto:[^\\s<>\"]+)$"+"\""}];return false;}}}else {validate68.errors = [{instancePath:instancePath+"/attrs/href",schemaPath:"../common.schema.json#/$defs/url/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs10 === errors;}else {var valid1 = true;}if(valid1){if(data2.src !== undefined){let data5 = data2.src;const _errs13 = errors;if(errors === _errs13){if(typeof data5 === "string"){if(!pattern72.test(data5)){validate68.errors = [{instancePath:instancePath+"/attrs/src",schemaPath:"#/properties/attrs/properties/src/pattern",keyword:"pattern",params:{pattern: "^assets/[a-f0-9]{8,64}\\.(?:png|jpe?g|webp|avif|gif|svg)$"},message:"must match pattern \""+"^assets/[a-f0-9]{8,64}\\.(?:png|jpe?g|webp|avif|gif|svg)$"+"\""}];return false;}}else {validate68.errors = [{instancePath:instancePath+"/attrs/src",schemaPath:"#/properties/attrs/properties/src/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs13 === errors;}else {var valid1 = true;}if(valid1){if(data2.alt !== undefined){let data6 = data2.alt;const _errs15 = errors;if(errors === _errs15){if(typeof data6 === "string"){if(func2(data6) > 300){validate68.errors = [{instancePath:instancePath+"/attrs/alt",schemaPath:"#/properties/attrs/properties/alt/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}}else {validate68.errors = [{instancePath:instancePath+"/attrs/alt",schemaPath:"#/properties/attrs/properties/alt/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs15 === errors;}else {var valid1 = true;}if(valid1){if(data2.align !== undefined){let data7 = data2.align;const _errs17 = errors;if(!(((data7 === "left") || (data7 === "center")) || (data7 === "right"))){validate68.errors = [{instancePath:instancePath+"/attrs/align",schemaPath:"#/properties/attrs/properties/align/enum",keyword:"enum",params:{allowedValues: schema109.properties.attrs.properties.align.enum},message:"must be equal to one of the allowed values"}];return false;}var valid1 = _errs17 === errors;}else {var valid1 = true;}if(valid1){if(data2.start !== undefined){let data8 = data2.start;const _errs18 = errors;if(!(((typeof data8 == "number") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))){validate68.errors = [{instancePath:instancePath+"/attrs/start",schemaPath:"#/properties/attrs/properties/start/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs18){if((typeof data8 == "number") && (isFinite(data8))){if(data8 < 0 || isNaN(data8)){validate68.errors = [{instancePath:instancePath+"/attrs/start",schemaPath:"#/properties/attrs/properties/start/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"}];return false;}}}var valid1 = _errs18 === errors;}else {var valid1 = true;}if(valid1){if(data2.checked !== undefined){const _errs20 = errors;if(typeof data2.checked !== "boolean"){validate68.errors = [{instancePath:instancePath+"/attrs/checked",schemaPath:"#/properties/attrs/properties/checked/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid1 = _errs20 === errors;}else {var valid1 = true;}}}}}}}}}else {validate68.errors = [{instancePath:instancePath+"/attrs",schemaPath:"#/properties/attrs/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.c !== undefined){const _errs22 = errors;if(!(wrapper0.validate(data.c, {instancePath:instancePath+"/c",parentData:data,parentDataProperty:"c",rootData,dynamicAnchors}))){vErrors = vErrors === null ? wrapper0.validate.errors : vErrors.concat(wrapper0.validate.errors);errors = vErrors.length;}var valid0 = _errs22 === errors;}else {var valid0 = true;}}}}}}}else {validate68.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate68.errors = vErrors;return errors === 0;}validate68.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema112 = {"type":"object","additionalProperties":false,"required":["t","lang","lines"],"properties":{"t":{"const":"code"},"lang":{"type":"string","pattern":"^[a-z0-9+#-]{1,24}$"},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"highlight":{"type":"array","items":{"type":"integer","minimum":1}},"lines":{"type":"array","maxItems":5000,"items":{"type":"array","maxItems":2000,"items":{"type":"object","additionalProperties":false,"required":["v"],"properties":{"v":{"type":"string","maxLength":20000},"l":{"$ref":"#/$defs/tokenColor"},"d":{"$ref":"#/$defs/tokenColor"},"i":{"const":true}}}}}}};const schema113 = {"type":"string","pattern":"^#[0-9a-fA-F]{6}$"};const pattern73 = new RegExp("^[a-z0-9+#-]{1,24}$", "u");const pattern74 = new RegExp("^#[0-9a-fA-F]{6}$", "u");function validate70(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate70.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((data.t === undefined) && (missing0 = "t")) || ((data.lang === undefined) && (missing0 = "lang"))) || ((data.lines === undefined) && (missing0 = "lines"))){validate70.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((((key0 === "t") || (key0 === "lang")) || (key0 === "title")) || (key0 === "highlight")) || (key0 === "lines"))){validate70.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.t !== undefined){const _errs2 = errors;if("code" !== data.t){validate70.errors = [{instancePath:instancePath+"/t",schemaPath:"#/properties/t/const",keyword:"const",params:{allowedValue: "code"},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.lang !== undefined){let data1 = data.lang;const _errs3 = errors;if(errors === _errs3){if(typeof data1 === "string"){if(!pattern73.test(data1)){validate70.errors = [{instancePath:instancePath+"/lang",schemaPath:"#/properties/lang/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9+#-]{1,24}$"},message:"must match pattern \""+"^[a-z0-9+#-]{1,24}$"+"\""}];return false;}}else {validate70.errors = [{instancePath:instancePath+"/lang",schemaPath:"#/properties/lang/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.title !== undefined){const _errs5 = errors;if(!(validate64(data.title, {instancePath:instancePath+"/title",parentData:data,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate64.errors : vErrors.concat(validate64.errors);errors = vErrors.length;}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.highlight !== undefined){let data3 = data.highlight;const _errs6 = errors;if(errors === _errs6){if(Array.isArray(data3)){var valid1 = true;const len0 = data3.length;for(let i0=0; i0=", limit: 1},message:"must be >= 1"}];return false;}}}var valid1 = _errs8 === errors;if(!valid1){break;}}}else {validate70.errors = [{instancePath:instancePath+"/highlight",schemaPath:"#/properties/highlight/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs6 === errors;}else {var valid0 = true;}if(valid0){if(data.lines !== undefined){let data5 = data.lines;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data5)){if(data5.length > 5000){validate70.errors = [{instancePath:instancePath+"/lines",schemaPath:"#/properties/lines/maxItems",keyword:"maxItems",params:{limit: 5000},message:"must NOT have more than 5000 items"}];return false;}else {var valid2 = true;const len1 = data5.length;for(let i1=0; i1 2000){validate70.errors = [{instancePath:instancePath+"/lines/" + i1,schemaPath:"#/properties/lines/items/maxItems",keyword:"maxItems",params:{limit: 2000},message:"must NOT have more than 2000 items"}];return false;}else {var valid3 = true;const len2 = data6.length;for(let i2=0; i2 20000){validate70.errors = [{instancePath:instancePath+"/lines/" + i1+"/" + i2+"/v",schemaPath:"#/properties/lines/items/items/properties/v/maxLength",keyword:"maxLength",params:{limit: 20000},message:"must NOT have more than 20000 characters"}];return false;}}else {validate70.errors = [{instancePath:instancePath+"/lines/" + i1+"/" + i2+"/v",schemaPath:"#/properties/lines/items/items/properties/v/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data7.l !== undefined){let data9 = data7.l;const _errs19 = errors;const _errs20 = errors;if(errors === _errs20){if(typeof data9 === "string"){if(!pattern74.test(data9)){validate70.errors = [{instancePath:instancePath+"/lines/" + i1+"/" + i2+"/l",schemaPath:"#/$defs/tokenColor/pattern",keyword:"pattern",params:{pattern: "^#[0-9a-fA-F]{6}$"},message:"must match pattern \""+"^#[0-9a-fA-F]{6}$"+"\""}];return false;}}else {validate70.errors = [{instancePath:instancePath+"/lines/" + i1+"/" + i2+"/l",schemaPath:"#/$defs/tokenColor/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data7.d !== undefined){let data10 = data7.d;const _errs22 = errors;const _errs23 = errors;if(errors === _errs23){if(typeof data10 === "string"){if(!pattern74.test(data10)){validate70.errors = [{instancePath:instancePath+"/lines/" + i1+"/" + i2+"/d",schemaPath:"#/$defs/tokenColor/pattern",keyword:"pattern",params:{pattern: "^#[0-9a-fA-F]{6}$"},message:"must match pattern \""+"^#[0-9a-fA-F]{6}$"+"\""}];return false;}}else {validate70.errors = [{instancePath:instancePath+"/lines/" + i1+"/" + i2+"/d",schemaPath:"#/$defs/tokenColor/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs22 === errors;}else {var valid4 = true;}if(valid4){if(data7.i !== undefined){const _errs25 = errors;if(true !== data7.i){validate70.errors = [{instancePath:instancePath+"/lines/" + i1+"/" + i2+"/i",schemaPath:"#/properties/lines/items/items/properties/i/const",keyword:"const",params:{allowedValue: true},message:"must be equal to constant"}];return false;}var valid4 = _errs25 === errors;}else {var valid4 = true;}}}}}}}else {validate70.errors = [{instancePath:instancePath+"/lines/" + i1+"/" + i2,schemaPath:"#/properties/lines/items/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs14 === errors;if(!valid3){break;}}}}else {validate70.errors = [{instancePath:instancePath+"/lines/" + i1,schemaPath:"#/properties/lines/items/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs12 === errors;if(!valid2){break;}}}}else {validate70.errors = [{instancePath:instancePath+"/lines",schemaPath:"#/properties/lines/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs10 === errors;}else {var valid0 = true;}}}}}}}}else {validate70.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate70.errors = vErrors;return errors === 0;}validate70.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema115 = {"type":"object","additionalProperties":false,"required":["t","name"],"properties":{"t":{"const":"tag"},"name":{"type":"string","enum":["admin-module-finder","annotated-yaml","assessment-timer","block-flow","build-roadmap","callout","card","cards","check-mode-sim","column","columns","command-vs-module","condition-playground","cron-builder","custom-fact-builder","data-explorer","diagram","error-decoder","fact-gathering","facts-explorer","feature-grid","fetch-layout","file-edit-simulator","file-module-chooser","flashcards","flow-map","fqcn-explorer","glob-tester","glossary","grep-tester","group-vars-resolver","handler-timeline","hero","host-pattern-tester","idempotency-demo","inventory-explorer","kbd","lab","lab-challenge","lab-finish","lab-network-map","lab-notes","lab-setup","lead","loop-unroller","magic-variables","mode-calculator","module-explorer","objectives","play-order","play-recap","practice","precedence-resolver","program-cards","project-tree","quiz","range-expander","reader-variables","readiness-checklist","reuse-simulator","reveal","role-anatomy","role-var-resolver","run-stages","shell-practice","snapshot-chain","starter-files","stat-explorer","step","steps","tab","tabs","task","task-outcome","template-playground","term","terminal-demo","variable-name-checker","variable-precedence","variable-substitution","variant","variant-group","variant-switch","vault-commands","verbosity","yaml-multiline"]},"attrs":{"type":"object","propertyNames":{"pattern":"^[a-z][a-zA-Z0-9]*$"},"additionalProperties":{"oneOf":[{"type":"string","maxLength":4000},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":50,"items":{"type":"string","maxLength":400}}]}},"c":{"$ref":"#/$defs/children"}}};const pattern76 = new RegExp("^[a-z][a-zA-Z0-9]*$", "u");function validate73(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate73.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.t === undefined) && (missing0 = "t")) || ((data.name === undefined) && (missing0 = "name"))){validate73.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((((key0 === "t") || (key0 === "name")) || (key0 === "attrs")) || (key0 === "c"))){validate73.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.t !== undefined){const _errs2 = errors;if("tag" !== data.t){validate73.errors = [{instancePath:instancePath+"/t",schemaPath:"#/properties/t/const",keyword:"const",params:{allowedValue: "tag"},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.name !== undefined){let data1 = data.name;const _errs3 = errors;if(typeof data1 !== "string"){validate73.errors = [{instancePath:instancePath+"/name",schemaPath:"#/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}if(!((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((data1 === "admin-module-finder") || (data1 === "annotated-yaml")) || (data1 === "assessment-timer")) || (data1 === "block-flow")) || (data1 === "build-roadmap")) || (data1 === "callout")) || (data1 === "card")) || (data1 === "cards")) || (data1 === "check-mode-sim")) || (data1 === "column")) || (data1 === "columns")) || (data1 === "command-vs-module")) || (data1 === "condition-playground")) || (data1 === "cron-builder")) || (data1 === "custom-fact-builder")) || (data1 === "data-explorer")) || (data1 === "diagram")) || (data1 === "error-decoder")) || (data1 === "fact-gathering")) || (data1 === "facts-explorer")) || (data1 === "feature-grid")) || (data1 === "fetch-layout")) || (data1 === "file-edit-simulator")) || (data1 === "file-module-chooser")) || (data1 === "flashcards")) || (data1 === "flow-map")) || (data1 === "fqcn-explorer")) || (data1 === "glob-tester")) || (data1 === "glossary")) || (data1 === "grep-tester")) || (data1 === "group-vars-resolver")) || (data1 === "handler-timeline")) || (data1 === "hero")) || (data1 === "host-pattern-tester")) || (data1 === "idempotency-demo")) || (data1 === "inventory-explorer")) || (data1 === "kbd")) || (data1 === "lab")) || (data1 === "lab-challenge")) || (data1 === "lab-finish")) || (data1 === "lab-network-map")) || (data1 === "lab-notes")) || (data1 === "lab-setup")) || (data1 === "lead")) || (data1 === "loop-unroller")) || (data1 === "magic-variables")) || (data1 === "mode-calculator")) || (data1 === "module-explorer")) || (data1 === "objectives")) || (data1 === "play-order")) || (data1 === "play-recap")) || (data1 === "practice")) || (data1 === "precedence-resolver")) || (data1 === "program-cards")) || (data1 === "project-tree")) || (data1 === "quiz")) || (data1 === "range-expander")) || (data1 === "reader-variables")) || (data1 === "readiness-checklist")) || (data1 === "reuse-simulator")) || (data1 === "reveal")) || (data1 === "role-anatomy")) || (data1 === "role-var-resolver")) || (data1 === "run-stages")) || (data1 === "shell-practice")) || (data1 === "snapshot-chain")) || (data1 === "starter-files")) || (data1 === "stat-explorer")) || (data1 === "step")) || (data1 === "steps")) || (data1 === "tab")) || (data1 === "tabs")) || (data1 === "task")) || (data1 === "task-outcome")) || (data1 === "template-playground")) || (data1 === "term")) || (data1 === "terminal-demo")) || (data1 === "variable-name-checker")) || (data1 === "variable-precedence")) || (data1 === "variable-substitution")) || (data1 === "variant")) || (data1 === "variant-group")) || (data1 === "variant-switch")) || (data1 === "vault-commands")) || (data1 === "verbosity")) || (data1 === "yaml-multiline"))){validate73.errors = [{instancePath:instancePath+"/name",schemaPath:"#/properties/name/enum",keyword:"enum",params:{allowedValues: schema115.properties.name.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.attrs !== undefined){let data2 = data.attrs;const _errs5 = errors;if(errors === _errs5){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key1 in data2){const _errs7 = errors;if(typeof key1 === "string"){if(!pattern76.test(key1)){const err0 = {instancePath:instancePath+"/attrs",schemaPath:"#/properties/attrs/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[a-z][a-zA-Z0-9]*$"},message:"must match pattern \""+"^[a-z][a-zA-Z0-9]*$"+"\"",propertyName:key1};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs7 === errors;if(!valid1){const err1 = {instancePath:instancePath+"/attrs",schemaPath:"#/properties/attrs/propertyNames",keyword:"propertyNames",params:{propertyName: key1},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate73.errors = vErrors;return false;break;}}if(valid1){for(const key2 in data2){let data3 = data2[key2];const _errs9 = errors;const _errs10 = errors;let valid3 = false;let passing0 = null;const _errs11 = errors;if(errors === _errs11){if(typeof data3 === "string"){if(func2(data3) > 4000){const err2 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/attrs/additionalProperties/oneOf/0/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}else {const err3 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/attrs/additionalProperties/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}var _valid0 = _errs11 === errors;if(_valid0){valid3 = true;passing0 = 0;}const _errs13 = errors;if(!((typeof data3 == "number") && (isFinite(data3)))){const err4 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/attrs/additionalProperties/oneOf/1/type",keyword:"type",params:{type: "number"},message:"must be number"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}var _valid0 = _errs13 === errors;if(_valid0 && valid3){valid3 = false;passing0 = [passing0, 1];}else {if(_valid0){valid3 = true;passing0 = 1;}const _errs15 = errors;if(typeof data3 !== "boolean"){const err5 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/attrs/additionalProperties/oneOf/2/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}var _valid0 = _errs15 === errors;if(_valid0 && valid3){valid3 = false;passing0 = [passing0, 2];}else {if(_valid0){valid3 = true;passing0 = 2;}const _errs17 = errors;if(errors === _errs17){if(Array.isArray(data3)){if(data3.length > 50){const err6 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/attrs/additionalProperties/oneOf/3/maxItems",keyword:"maxItems",params:{limit: 50},message:"must NOT have more than 50 items"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}else {var valid4 = true;const len0 = data3.length;for(let i0=0; i0 400){const err7 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/attrs/additionalProperties/oneOf/3/items/maxLength",keyword:"maxLength",params:{limit: 400},message:"must NOT have more than 400 characters"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}else {const err8 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/attrs/additionalProperties/oneOf/3/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}var valid4 = _errs19 === errors;if(!valid4){break;}}}}else {const err9 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/attrs/additionalProperties/oneOf/3/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}var _valid0 = _errs17 === errors;if(_valid0 && valid3){valid3 = false;passing0 = [passing0, 3];}else {if(_valid0){valid3 = true;passing0 = 3;}}}}if(!valid3){const err10 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/attrs/additionalProperties/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;validate73.errors = vErrors;return false;}else {errors = _errs10;if(vErrors !== null){if(_errs10){vErrors.length = _errs10;}else {vErrors = null;}}}var valid2 = _errs9 === errors;if(!valid2){break;}}}}else {validate73.errors = [{instancePath:instancePath+"/attrs",schemaPath:"#/properties/attrs/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.c !== undefined){const _errs21 = errors;if(!(wrapper0.validate(data.c, {instancePath:instancePath+"/c",parentData:data,parentDataProperty:"c",rootData,dynamicAnchors}))){vErrors = vErrors === null ? wrapper0.validate.errors : vErrors.concat(wrapper0.validate.errors);errors = vErrors.length;}var valid0 = _errs21 === errors;}else {var valid0 = true;}}}}}}}else {validate73.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate73.errors = vErrors;return errors === 0;}validate73.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate67(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate67.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;let valid0 = false;let passing0 = null;const _errs1 = errors;const _errs2 = errors;if(errors === _errs2){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.t === undefined) && (missing0 = "t")) || ((data.v === undefined) && (missing0 = "v"))){const err0 = {instancePath,schemaPath:"#/$defs/text/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}else {const _errs4 = errors;for(const key0 in data){if(!((key0 === "t") || (key0 === "v"))){const err1 = {instancePath,schemaPath:"#/$defs/text/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;break;}}if(_errs4 === errors){if(data.t !== undefined){const _errs5 = errors;if("text" !== data.t){const err2 = {instancePath:instancePath+"/t",schemaPath:"#/$defs/text/properties/t/const",keyword:"const",params:{allowedValue: "text"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}var valid2 = _errs5 === errors;}else {var valid2 = true;}if(valid2){if(data.v !== undefined){let data1 = data.v;const _errs6 = errors;if(errors === _errs6){if(typeof data1 === "string"){if(func2(data1) > 20000){const err3 = {instancePath:instancePath+"/v",schemaPath:"#/$defs/text/properties/v/maxLength",keyword:"maxLength",params:{limit: 20000},message:"must NOT have more than 20000 characters"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}else {const err4 = {instancePath:instancePath+"/v",schemaPath:"#/$defs/text/properties/v/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}var valid2 = _errs6 === errors;}else {var valid2 = true;}}}}}else {const err5 = {instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}var _valid0 = _errs1 === errors;if(_valid0){valid0 = true;passing0 = 0;var props0 = true;}const _errs8 = errors;if(!(validate68(data, {instancePath,parentData,parentDataProperty,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate68.errors : vErrors.concat(validate68.errors);errors = vErrors.length;}var _valid0 = _errs8 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 1];}else {if(_valid0){valid0 = true;passing0 = 1;if(props0 !== true){props0 = true;}}const _errs9 = errors;if(!(validate70(data, {instancePath,parentData,parentDataProperty,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate70.errors : vErrors.concat(validate70.errors);errors = vErrors.length;}var _valid0 = _errs9 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 2];}else {if(_valid0){valid0 = true;passing0 = 2;if(props0 !== true){props0 = true;}}const _errs10 = errors;if(!(validate73(data, {instancePath,parentData,parentDataProperty,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate73.errors : vErrors.concat(validate73.errors);errors = vErrors.length;}var _valid0 = _errs10 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 3];}else {if(_valid0){valid0 = true;passing0 = 3;if(props0 !== true){props0 = true;}}}}}if(!valid0){const err6 = {instancePath,schemaPath:"#/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;validate67.errors = vErrors;return false;}else {errors = _errs0;if(vErrors !== null){if(_errs0){vErrors.length = _errs0;}else {vErrors = null;}}}validate67.errors = vErrors;evaluated0.props = props0;return errors === 0;}validate67.evaluated = {"dynamicProps":true,"dynamicItems":false};function validate66(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate66.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(Array.isArray(data)){if(data.length > 5000){validate66.errors = [{instancePath,schemaPath:"#/maxItems",keyword:"maxItems",params:{limit: 5000},message:"must NOT have more than 5000 items"}];return false;}else {var valid0 = true;const len0 = data.length;for(let i0=0; i0 600 || isNaN(data4)){validate63.errors = [{instancePath:instancePath+"/minutes",schemaPath:"../common.schema.json#/$defs/minutes/maximum",keyword:"maximum",params:{comparison: "<=", limit: 600},message:"must be <= 600"}];return false;}else {if(data4 < 1 || isNaN(data4)){validate63.errors = [{instancePath:instancePath+"/minutes",schemaPath:"../common.schema.json#/$defs/minutes/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}}var valid0 = _errs8 === errors;}else {var valid0 = true;}if(valid0){if(data.description !== undefined){let data5 = data.description;const _errs11 = errors;const _errs12 = errors;const _errs14 = errors;const _errs15 = errors;if(typeof data5 === "string"){if(!pattern5.test(data5)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid4 = _errs15 === errors;if(valid4){validate63.errors = [{instancePath:instancePath+"/description",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs14;if(vErrors !== null){if(_errs14){vErrors.length = _errs14;}else {vErrors = null;}}}if(errors === _errs12){if(typeof data5 === "string"){if(func2(data5) > 2000){validate63.errors = [{instancePath:instancePath+"/description",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data5) < 1){validate63.errors = [{instancePath:instancePath+"/description",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate63.errors = [{instancePath:instancePath+"/description",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs11 === errors;}else {var valid0 = true;}if(valid0){if(data.toc !== undefined){let data6 = data.toc;const _errs16 = errors;if(errors === _errs16){if(Array.isArray(data6)){if(data6.length > 200){validate63.errors = [{instancePath:instancePath+"/toc",schemaPath:"#/properties/toc/maxItems",keyword:"maxItems",params:{limit: 200},message:"must NOT have more than 200 items"}];return false;}else {var valid5 = true;const len0 = data6.length;for(let i0=0; i0 2000){validate63.errors = [{instancePath:instancePath+"/toc/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data9) < 1){validate63.errors = [{instancePath:instancePath+"/toc/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate63.errors = [{instancePath:instancePath+"/toc/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs24 === errors;}else {var valid6 = true;}if(valid6){if(data7.depth !== undefined){let data10 = data7.depth;const _errs29 = errors;if(!((data10 === 2) || (data10 === 3))){validate63.errors = [{instancePath:instancePath+"/toc/" + i0+"/depth",schemaPath:"#/properties/toc/items/properties/depth/enum",keyword:"enum",params:{allowedValues: schema97.properties.toc.items.properties.depth.enum},message:"must be equal to one of the allowed values"}];return false;}var valid6 = _errs29 === errors;}else {var valid6 = true;}}}}}}else {validate63.errors = [{instancePath:instancePath+"/toc/" + i0,schemaPath:"#/properties/toc/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs18 === errors;if(!valid5){break;}}}}else {validate63.errors = [{instancePath:instancePath+"/toc",schemaPath:"#/properties/toc/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs16 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data11 = data.data;const _errs30 = errors;if(errors === _errs30){if(data11 && typeof data11 == "object" && !Array.isArray(data11)){for(const key2 in data11){const _errs32 = errors;const _errs33 = errors;if(errors === _errs33){if(typeof key2 === "string"){if(func2(key2) > 64){const err2 = {instancePath:instancePath+"/data",schemaPath:"../common.schema.json#/$defs/dataRef/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters",propertyName:key2};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}else {if(!pattern18.test(key2)){const err3 = {instancePath:instancePath+"/data",schemaPath:"../common.schema.json#/$defs/dataRef/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\"",propertyName:key2};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}}else {const err4 = {instancePath:instancePath+"/data",schemaPath:"../common.schema.json#/$defs/dataRef/type",keyword:"type",params:{type: "string"},message:"must be string",propertyName:key2};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}var valid10 = _errs32 === errors;if(!valid10){const err5 = {instancePath:instancePath+"/data",schemaPath:"#/properties/data/propertyNames",keyword:"propertyNames",params:{propertyName: key2},message:"property name must be valid"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;validate63.errors = vErrors;return false;break;}}}else {validate63.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs30 === errors;}else {var valid0 = true;}if(valid0){if(data.tree !== undefined){const _errs35 = errors;if(!(validate66(data.tree, {instancePath:instancePath+"/tree",parentData:data,parentDataProperty:"tree",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate66.errors : vErrors.concat(validate66.errors);errors = vErrors.length;}var valid0 = _errs35 === errors;}else {var valid0 = true;}if(valid0){if(data.eyebrow !== undefined){const _errs36 = errors;if(!(validate64(data.eyebrow, {instancePath:instancePath+"/eyebrow",parentData:data,parentDataProperty:"eyebrow",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate64.errors : vErrors.concat(validate64.errors);errors = vErrors.length;}var valid0 = _errs36 === errors;}else {var valid0 = true;}}}}}}}}}}}}}else {validate63.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate63.errors = vErrors;return errors === 0;}validate63.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateSearch = validate78;const schema116 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/bundle/search.schema.json","type":"object","additionalProperties":false,"required":["apiVersion","entries"],"properties":{"apiVersion":{"$ref":"../common.schema.json#/$defs/apiVersion"},"entries":{"type":"array","maxItems":20000,"items":{"type":"object","additionalProperties":false,"required":["page","text"],"properties":{"page":{"type":"string","pattern":"^(?:ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*|home|details)$"},"heading":{"type":"string","maxLength":300},"anchor":{"type":"string","pattern":"^[a-z0-9_-][a-z0-9_-]{0,119}$"},"text":{"type":"string","maxLength":100000}}}}}};function validate78(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/bundle/search.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate78.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.apiVersion === undefined) && (missing0 = "apiVersion")) || ((data.entries === undefined) && (missing0 = "entries"))){validate78.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "apiVersion") || (key0 === "entries"))){validate78.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.apiVersion !== undefined){const _errs2 = errors;if(1 !== data.apiVersion){validate78.errors = [{instancePath:instancePath+"/apiVersion",schemaPath:"../common.schema.json#/$defs/apiVersion/const",keyword:"const",params:{allowedValue: 1},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.entries !== undefined){let data1 = data.entries;const _errs4 = errors;if(errors === _errs4){if(Array.isArray(data1)){if(data1.length > 20000){validate78.errors = [{instancePath:instancePath+"/entries",schemaPath:"#/properties/entries/maxItems",keyword:"maxItems",params:{limit: 20000},message:"must NOT have more than 20000 items"}];return false;}else {var valid2 = true;const len0 = data1.length;for(let i0=0; i0 300){validate78.errors = [{instancePath:instancePath+"/entries/" + i0+"/heading",schemaPath:"#/properties/entries/items/properties/heading/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}}else {validate78.errors = [{instancePath:instancePath+"/entries/" + i0+"/heading",schemaPath:"#/properties/entries/items/properties/heading/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs11 === errors;}else {var valid3 = true;}if(valid3){if(data2.anchor !== undefined){let data5 = data2.anchor;const _errs13 = errors;if(errors === _errs13){if(typeof data5 === "string"){if(!pattern67.test(data5)){validate78.errors = [{instancePath:instancePath+"/entries/" + i0+"/anchor",schemaPath:"#/properties/entries/items/properties/anchor/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9_-][a-z0-9_-]{0,119}$"},message:"must match pattern \""+"^[a-z0-9_-][a-z0-9_-]{0,119}$"+"\""}];return false;}}else {validate78.errors = [{instancePath:instancePath+"/entries/" + i0+"/anchor",schemaPath:"#/properties/entries/items/properties/anchor/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs13 === errors;}else {var valid3 = true;}if(valid3){if(data2.text !== undefined){let data6 = data2.text;const _errs15 = errors;if(errors === _errs15){if(typeof data6 === "string"){if(func2(data6) > 100000){validate78.errors = [{instancePath:instancePath+"/entries/" + i0+"/text",schemaPath:"#/properties/entries/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 100000},message:"must NOT have more than 100000 characters"}];return false;}}else {validate78.errors = [{instancePath:instancePath+"/entries/" + i0+"/text",schemaPath:"#/properties/entries/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs15 === errors;}else {var valid3 = true;}}}}}}}else {validate78.errors = [{instancePath:instancePath+"/entries/" + i0,schemaPath:"#/properties/entries/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs6 === errors;if(!valid2){break;}}}}else {validate78.errors = [{instancePath:instancePath+"/entries",schemaPath:"#/properties/entries/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}}}}}else {validate78.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate78.errors = vErrors;return errors === 0;}validate78.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateLegacy = validate79;const schema118 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/bundle/legacy.schema.json","type":"object","additionalProperties":false,"required":["apiVersion","course","track","interface"],"properties":{"apiVersion":{"$ref":"../common.schema.json#/$defs/apiVersion"},"course":{"type":"object","additionalProperties":false,"required":["title","tagline"],"properties":{"title":{"$ref":"../common.schema.json#/$defs/shortText"},"tagline":{"$ref":"../common.schema.json#/$defs/shortText"},"repo":{"$ref":"../common.schema.json#/$defs/url"}}},"track":{"type":"object","additionalProperties":{"type":"string","maxLength":200},"required":["id","label","platform"],"properties":{"platform":{"type":"object","additionalProperties":false,"required":["title","path"],"properties":{"title":{"$ref":"../common.schema.json#/$defs/shortText"},"eyebrow":{"$ref":"../common.schema.json#/$defs/shortText"},"description":{"$ref":"../common.schema.json#/$defs/text"},"path":{"const":"/platform"}}}}},"interface":{"$ref":"interface.schema.json#/properties/interface"}}};const schema126 = {"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}};function validate80(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate80.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate80.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate80.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate80.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate80.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate80.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate80.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate80.errors = vErrors;return errors === 0;}validate80.evaluated = {"dynamicProps":false,"dynamicItems":false};const pattern82 = new RegExp("^[A-Z][A-Za-z0-9]*$", "u");function validate79(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/bundle/legacy.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate79.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((((data.apiVersion === undefined) && (missing0 = "apiVersion")) || ((data.course === undefined) && (missing0 = "course"))) || ((data.track === undefined) && (missing0 = "track"))) || ((data.interface === undefined) && (missing0 = "interface"))){validate79.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((((key0 === "apiVersion") || (key0 === "course")) || (key0 === "track")) || (key0 === "interface"))){validate79.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.apiVersion !== undefined){const _errs2 = errors;if(1 !== data.apiVersion){validate79.errors = [{instancePath:instancePath+"/apiVersion",schemaPath:"../common.schema.json#/$defs/apiVersion/const",keyword:"const",params:{allowedValue: 1},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.course !== undefined){let data1 = data.course;const _errs4 = errors;if(errors === _errs4){if(data1 && typeof data1 == "object" && !Array.isArray(data1)){let missing1;if(((data1.title === undefined) && (missing1 = "title")) || ((data1.tagline === undefined) && (missing1 = "tagline"))){validate79.errors = [{instancePath:instancePath+"/course",schemaPath:"#/properties/course/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs6 = errors;for(const key1 in data1){if(!(((key1 === "title") || (key1 === "tagline")) || (key1 === "repo"))){validate79.errors = [{instancePath:instancePath+"/course",schemaPath:"#/properties/course/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs6 === errors){if(data1.title !== undefined){const _errs7 = errors;if(!(validate80(data1.title, {instancePath:instancePath+"/course/title",parentData:data1,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate80.errors : vErrors.concat(validate80.errors);errors = vErrors.length;}var valid2 = _errs7 === errors;}else {var valid2 = true;}if(valid2){if(data1.tagline !== undefined){const _errs8 = errors;if(!(validate80(data1.tagline, {instancePath:instancePath+"/course/tagline",parentData:data1,parentDataProperty:"tagline",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate80.errors : vErrors.concat(validate80.errors);errors = vErrors.length;}var valid2 = _errs8 === errors;}else {var valid2 = true;}if(valid2){if(data1.repo !== undefined){let data4 = data1.repo;const _errs9 = errors;const _errs10 = errors;if(errors === _errs10){if(typeof data4 === "string"){if(func2(data4) > 2048){validate79.errors = [{instancePath:instancePath+"/course/repo",schemaPath:"../common.schema.json#/$defs/url/maxLength",keyword:"maxLength",params:{limit: 2048},message:"must NOT have more than 2048 characters"}];return false;}else {if(!pattern7.test(data4)){validate79.errors = [{instancePath:instancePath+"/course/repo",schemaPath:"../common.schema.json#/$defs/url/pattern",keyword:"pattern",params:{pattern: "^(?:#[/A-Za-z0-9._~%!$&'()*+,;=:@?#-]*|lab/[a-z0-9][a-z0-9._/-]*|https://[^\\s<>\"]+|mailto:[^\\s<>\"]+)$"},message:"must match pattern \""+"^(?:#[/A-Za-z0-9._~%!$&'()*+,;=:@?#-]*|lab/[a-z0-9][a-z0-9._/-]*|https://[^\\s<>\"]+|mailto:[^\\s<>\"]+)$"+"\""}];return false;}}}else {validate79.errors = [{instancePath:instancePath+"/course/repo",schemaPath:"../common.schema.json#/$defs/url/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs9 === errors;}else {var valid2 = true;}}}}}}else {validate79.errors = [{instancePath:instancePath+"/course",schemaPath:"#/properties/course/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.track !== undefined){let data5 = data.track;const _errs12 = errors;if(errors === _errs12){if(data5 && typeof data5 == "object" && !Array.isArray(data5)){let missing2;if((((data5.id === undefined) && (missing2 = "id")) || ((data5.label === undefined) && (missing2 = "label"))) || ((data5.platform === undefined) && (missing2 = "platform"))){validate79.errors = [{instancePath:instancePath+"/track",schemaPath:"#/properties/track/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs14 = errors;for(const key2 in data5){if(!(key2 === "platform")){let data6 = data5[key2];const _errs15 = errors;if(errors === _errs15){if(typeof data6 === "string"){if(func2(data6) > 200){validate79.errors = [{instancePath:instancePath+"/track/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/track/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}}else {validate79.errors = [{instancePath:instancePath+"/track/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/track/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;if(!valid4){break;}}}if(_errs14 === errors){if(data5.platform !== undefined){let data7 = data5.platform;const _errs17 = errors;if(errors === _errs17){if(data7 && typeof data7 == "object" && !Array.isArray(data7)){let missing3;if(((data7.title === undefined) && (missing3 = "title")) || ((data7.path === undefined) && (missing3 = "path"))){validate79.errors = [{instancePath:instancePath+"/track/platform",schemaPath:"#/properties/track/properties/platform/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs19 = errors;for(const key3 in data7){if(!((((key3 === "title") || (key3 === "eyebrow")) || (key3 === "description")) || (key3 === "path"))){validate79.errors = [{instancePath:instancePath+"/track/platform",schemaPath:"#/properties/track/properties/platform/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs19 === errors){if(data7.title !== undefined){const _errs20 = errors;if(!(validate80(data7.title, {instancePath:instancePath+"/track/platform/title",parentData:data7,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate80.errors : vErrors.concat(validate80.errors);errors = vErrors.length;}var valid6 = _errs20 === errors;}else {var valid6 = true;}if(valid6){if(data7.eyebrow !== undefined){const _errs21 = errors;if(!(validate80(data7.eyebrow, {instancePath:instancePath+"/track/platform/eyebrow",parentData:data7,parentDataProperty:"eyebrow",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate80.errors : vErrors.concat(validate80.errors);errors = vErrors.length;}var valid6 = _errs21 === errors;}else {var valid6 = true;}if(valid6){if(data7.description !== undefined){let data10 = data7.description;const _errs22 = errors;const _errs23 = errors;const _errs25 = errors;const _errs26 = errors;if(typeof data10 === "string"){if(!pattern5.test(data10)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid8 = _errs26 === errors;if(valid8){validate79.errors = [{instancePath:instancePath+"/track/platform/description",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs25;if(vErrors !== null){if(_errs25){vErrors.length = _errs25;}else {vErrors = null;}}}if(errors === _errs23){if(typeof data10 === "string"){if(func2(data10) > 2000){validate79.errors = [{instancePath:instancePath+"/track/platform/description",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data10) < 1){validate79.errors = [{instancePath:instancePath+"/track/platform/description",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate79.errors = [{instancePath:instancePath+"/track/platform/description",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs22 === errors;}else {var valid6 = true;}if(valid6){if(data7.path !== undefined){const _errs27 = errors;if("/platform" !== data7.path){validate79.errors = [{instancePath:instancePath+"/track/platform/path",schemaPath:"#/properties/track/properties/platform/properties/path/const",keyword:"const",params:{allowedValue: "/platform"},message:"must be equal to constant"}];return false;}var valid6 = _errs27 === errors;}else {var valid6 = true;}}}}}}}else {validate79.errors = [{instancePath:instancePath+"/track/platform",schemaPath:"#/properties/track/properties/platform/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}}}}}else {validate79.errors = [{instancePath:instancePath+"/track",schemaPath:"#/properties/track/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs12 === errors;}else {var valid0 = true;}if(valid0){if(data.interface !== undefined){let data12 = data.interface;const _errs28 = errors;const _errs29 = errors;if(errors === _errs29){if(data12 && typeof data12 == "object" && !Array.isArray(data12)){for(const key4 in data12){const _errs31 = errors;if(typeof key4 === "string"){if(!pattern82.test(key4)){const err1 = {instancePath:instancePath+"/interface",schemaPath:"interface.schema.json#/properties/interface/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key4};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}var valid10 = _errs31 === errors;if(!valid10){const err2 = {instancePath:instancePath+"/interface",schemaPath:"interface.schema.json#/properties/interface/propertyNames",keyword:"propertyNames",params:{propertyName: key4},message:"property name must be valid"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;validate79.errors = vErrors;return false;break;}}if(valid10){for(const key5 in data12){let data13 = data12[key5];const _errs33 = errors;if(errors === _errs33){if(data13 && typeof data13 == "object" && !Array.isArray(data13)){const _errs35 = errors;for(const key6 in data13){if(!((key6 === "text") || (key6 === "data"))){validate79.errors = [{instancePath:instancePath+"/interface/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"interface.schema.json#/properties/interface/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"}];return false;break;}}if(_errs35 === errors){if(data13.text !== undefined){let data14 = data13.text;const _errs36 = errors;if(errors === _errs36){if(data14 && typeof data14 == "object" && !Array.isArray(data14)){for(const key7 in data14){let data15 = data14[key7];const _errs39 = errors;if(errors === _errs39){if(typeof data15 === "string"){if(func2(data15) > 4000){validate79.errors = [{instancePath:instancePath+"/interface/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"interface.schema.json#/properties/interface/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate79.errors = [{instancePath:instancePath+"/interface/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"interface.schema.json#/properties/interface/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid13 = _errs39 === errors;if(!valid13){break;}}}else {validate79.errors = [{instancePath:instancePath+"/interface/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"interface.schema.json#/properties/interface/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid12 = _errs36 === errors;}else {var valid12 = true;}if(valid12){if(data13.data !== undefined){let data16 = data13.data;const _errs41 = errors;if(!(data16 && typeof data16 == "object" && !Array.isArray(data16))){validate79.errors = [{instancePath:instancePath+"/interface/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"interface.schema.json#/properties/interface/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid12 = _errs41 === errors;}else {var valid12 = true;}}}}else {validate79.errors = [{instancePath:instancePath+"/interface/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"interface.schema.json#/properties/interface/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid11 = _errs33 === errors;if(!valid11){break;}}}}else {validate79.errors = [{instancePath:instancePath+"/interface",schemaPath:"interface.schema.json#/properties/interface/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs28 === errors;}else {var valid0 = true;}}}}}}}else {validate79.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate79.errors = vErrors;return errors === 0;}validate79.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateInterface = validate85;const schema124 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/bundle/interface.schema.json","type":"object","additionalProperties":false,"required":["apiVersion","interface"],"properties":{"apiVersion":{"$ref":"../common.schema.json#/$defs/apiVersion"},"interface":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate85(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/bundle/interface.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate85.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.apiVersion === undefined) && (missing0 = "apiVersion")) || ((data.interface === undefined) && (missing0 = "interface"))){validate85.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "apiVersion") || (key0 === "interface"))){validate85.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.apiVersion !== undefined){const _errs2 = errors;if(1 !== data.apiVersion){validate85.errors = [{instancePath:instancePath+"/apiVersion",schemaPath:"../common.schema.json#/$defs/apiVersion/const",keyword:"const",params:{allowedValue: 1},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.interface !== undefined){let data1 = data.interface;const _errs4 = errors;if(errors === _errs4){if(data1 && typeof data1 == "object" && !Array.isArray(data1)){for(const key1 in data1){const _errs6 = errors;if(typeof key1 === "string"){if(!pattern82.test(key1)){const err0 = {instancePath:instancePath+"/interface",schemaPath:"#/properties/interface/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key1};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid2 = _errs6 === errors;if(!valid2){const err1 = {instancePath:instancePath+"/interface",schemaPath:"#/properties/interface/propertyNames",keyword:"propertyNames",params:{propertyName: key1},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate85.errors = vErrors;return false;break;}}if(valid2){for(const key2 in data1){let data2 = data1[key2];const _errs8 = errors;if(errors === _errs8){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){const _errs10 = errors;for(const key3 in data2){if(!((key3 === "text") || (key3 === "data"))){validate85.errors = [{instancePath:instancePath+"/interface/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/interface/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs10 === errors){if(data2.text !== undefined){let data3 = data2.text;const _errs11 = errors;if(errors === _errs11){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){for(const key4 in data3){let data4 = data3[key4];const _errs14 = errors;if(errors === _errs14){if(typeof data4 === "string"){if(func2(data4) > 4000){validate85.errors = [{instancePath:instancePath+"/interface/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/interface/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate85.errors = [{instancePath:instancePath+"/interface/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/interface/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs14 === errors;if(!valid5){break;}}}else {validate85.errors = [{instancePath:instancePath+"/interface/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/interface/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid4 = _errs11 === errors;}else {var valid4 = true;}if(valid4){if(data2.data !== undefined){let data5 = data2.data;const _errs16 = errors;if(!(data5 && typeof data5 == "object" && !Array.isArray(data5))){validate85.errors = [{instancePath:instancePath+"/interface/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/interface/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid4 = _errs16 === errors;}else {var valid4 = true;}}}}else {validate85.errors = [{instancePath:instancePath+"/interface/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/interface/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs8 === errors;if(!valid3){break;}}}}else {validate85.errors = [{instancePath:instancePath+"/interface",schemaPath:"#/properties/interface/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}}}}}else {validate85.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate85.errors = vErrors;return errors === 0;}validate85.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateQuizData = validate86;const schema127 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/quiz.schema.json","type":"object","additionalProperties":false,"required":["questions"],"properties":{"questions":{"type":"array","minItems":1,"maxItems":60,"items":{"type":"object","additionalProperties":false,"required":["id","q","options","answer","explain"],"properties":{"id":{"type":"string","pattern":"^q-[a-z0-9]{6,32}$"},"legacyIndex":{"type":"integer","minimum":0},"q":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"},"code":{"type":"string","maxLength":4000},"options":{"type":"array","minItems":2,"maxItems":6,"uniqueItems":true,"items":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"}},"answer":{"type":"integer","minimum":0,"maximum":5},"explain":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"}}}}}};const func0 = runtime1;function validate86(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/quiz.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate86.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((data.questions === undefined) && (missing0 = "questions")){validate86.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(key0 === "questions")){validate86.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.questions !== undefined){let data0 = data.questions;const _errs2 = errors;if(errors === _errs2){if(Array.isArray(data0)){if(data0.length > 60){validate86.errors = [{instancePath:instancePath+"/questions",schemaPath:"#/properties/questions/maxItems",keyword:"maxItems",params:{limit: 60},message:"must NOT have more than 60 items"}];return false;}else {if(data0.length < 1){validate86.errors = [{instancePath:instancePath+"/questions",schemaPath:"#/properties/questions/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid1 = true;const len0 = data0.length;for(let i0=0; i0=", limit: 0},message:"must be >= 0"}];return false;}}}var valid2 = _errs9 === errors;}else {var valid2 = true;}if(valid2){if(data1.q !== undefined){let data4 = data1.q;const _errs11 = errors;const _errs12 = errors;const _errs14 = errors;const _errs15 = errors;if(typeof data4 === "string"){if(!pattern8.test(data4)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid4 = _errs15 === errors;if(valid4){validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/q",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs14;if(vErrors !== null){if(_errs14){vErrors.length = _errs14;}else {vErrors = null;}}}if(errors === _errs12){if(typeof data4 === "string"){if(func2(data4) > 4000){validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/q",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data4) < 1){validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/q",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/q",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs11 === errors;}else {var valid2 = true;}if(valid2){if(data1.code !== undefined){let data5 = data1.code;const _errs16 = errors;if(errors === _errs16){if(typeof data5 === "string"){if(func2(data5) > 4000){validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/code",schemaPath:"#/properties/questions/items/properties/code/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/code",schemaPath:"#/properties/questions/items/properties/code/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs16 === errors;}else {var valid2 = true;}if(valid2){if(data1.options !== undefined){let data6 = data1.options;const _errs18 = errors;if(errors === _errs18){if(Array.isArray(data6)){if(data6.length > 6){validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/options",schemaPath:"#/properties/questions/items/properties/options/maxItems",keyword:"maxItems",params:{limit: 6},message:"must NOT have more than 6 items"}];return false;}else {if(data6.length < 2){validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/options",schemaPath:"#/properties/questions/items/properties/options/minItems",keyword:"minItems",params:{limit: 2},message:"must NOT have fewer than 2 items"}];return false;}else {var valid5 = true;const len1 = data6.length;for(let i1=0; i1 4000){validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/options/" + i1,schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data7) < 1){validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/options/" + i1,schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/options/" + i1,schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs20 === errors;if(!valid5){break;}}if(valid5){let i2 = data6.length;let j0;if(i2 > 1){outer0:for(;i2--;){for(j0 = i2; j0--;){if(func0(data6[i2], data6[j0])){validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/options",schemaPath:"#/properties/questions/items/properties/options/uniqueItems",keyword:"uniqueItems",params:{i: i2, j: j0},message:"must NOT have duplicate items (items ## "+j0+" and "+i2+" are identical)"}];return false;break outer0;}}}}}}}}else {validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/options",schemaPath:"#/properties/questions/items/properties/options/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs18 === errors;}else {var valid2 = true;}if(valid2){if(data1.answer !== undefined){let data8 = data1.answer;const _errs25 = errors;if(!(((typeof data8 == "number") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))){validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/answer",schemaPath:"#/properties/questions/items/properties/answer/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs25){if((typeof data8 == "number") && (isFinite(data8))){if(data8 > 5 || isNaN(data8)){validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/answer",schemaPath:"#/properties/questions/items/properties/answer/maximum",keyword:"maximum",params:{comparison: "<=", limit: 5},message:"must be <= 5"}];return false;}else {if(data8 < 0 || isNaN(data8)){validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/answer",schemaPath:"#/properties/questions/items/properties/answer/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"}];return false;}}}}var valid2 = _errs25 === errors;}else {var valid2 = true;}if(valid2){if(data1.explain !== undefined){let data9 = data1.explain;const _errs27 = errors;const _errs28 = errors;const _errs30 = errors;const _errs31 = errors;if(typeof data9 === "string"){if(!pattern8.test(data9)){const err2 = {};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}var valid10 = _errs31 === errors;if(valid10){validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/explain",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs30;if(vErrors !== null){if(_errs30){vErrors.length = _errs30;}else {vErrors = null;}}}if(errors === _errs28){if(typeof data9 === "string"){if(func2(data9) > 4000){validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/explain",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data9) < 1){validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/explain",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate86.errors = [{instancePath:instancePath+"/questions/" + i0+"/explain",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs27 === errors;}else {var valid2 = true;}}}}}}}}}}else {validate86.errors = [{instancePath:instancePath+"/questions/" + i0,schemaPath:"#/properties/questions/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid1 = _errs4 === errors;if(!valid1){break;}}}}}else {validate86.errors = [{instancePath:instancePath+"/questions",schemaPath:"#/properties/questions/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate86.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate86.errors = vErrors;return errors === 0;}validate86.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validatePracticeData = validate87;const schema131 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/practice.schema.json","type":"object","additionalProperties":false,"required":["questions"],"properties":{"questions":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["id","objective","title","prompt","options","expected","explain"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/id"},"objective":{"$ref":"../common.schema.json#/$defs/objectiveId"},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"prompt":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"},"code":{"type":"string","maxLength":4000},"options":{"type":"array","minItems":3,"maxItems":6,"uniqueItems":true,"items":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"}},"expected":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"},"explain":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"}}}}}};function validate88(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate88.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate88.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate88.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate88.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate88.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate88.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate88.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate88.errors = vErrors;return errors === 0;}validate88.evaluated = {"dynamicProps":false,"dynamicItems":false};function validate87(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/practice.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate87.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((data.questions === undefined) && (missing0 = "questions")){validate87.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(key0 === "questions")){validate87.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.questions !== undefined){let data0 = data.questions;const _errs2 = errors;if(errors === _errs2){if(Array.isArray(data0)){if(data0.length > 20){validate87.errors = [{instancePath:instancePath+"/questions",schemaPath:"#/properties/questions/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {if(data0.length < 1){validate87.errors = [{instancePath:instancePath+"/questions",schemaPath:"#/properties/questions/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid1 = true;const len0 = data0.length;for(let i0=0; i0 64){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data2)){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs7 === errors;}else {var valid2 = true;}if(valid2){if(data1.objective !== undefined){let data3 = data1.objective;const _errs10 = errors;const _errs11 = errors;if(errors === _errs11){if(typeof data3 === "string"){if(!pattern41.test(data3)){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/objective",schemaPath:"../common.schema.json#/$defs/objectiveId/pattern",keyword:"pattern",params:{pattern: "^ch[0-9]{2}\\.[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^ch[0-9]{2}\\.[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}else {validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/objective",schemaPath:"../common.schema.json#/$defs/objectiveId/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data1.title !== undefined){const _errs13 = errors;if(!(validate88(data1.title, {instancePath:instancePath+"/questions/" + i0+"/title",parentData:data1,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate88.errors : vErrors.concat(validate88.errors);errors = vErrors.length;}var valid2 = _errs13 === errors;}else {var valid2 = true;}if(valid2){if(data1.prompt !== undefined){let data5 = data1.prompt;const _errs14 = errors;const _errs15 = errors;const _errs17 = errors;const _errs18 = errors;if(typeof data5 === "string"){if(!pattern8.test(data5)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid6 = _errs18 === errors;if(valid6){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/prompt",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs17;if(vErrors !== null){if(_errs17){vErrors.length = _errs17;}else {vErrors = null;}}}if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/prompt",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data5) < 1){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/prompt",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/prompt",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs14 === errors;}else {var valid2 = true;}if(valid2){if(data1.code !== undefined){let data6 = data1.code;const _errs19 = errors;if(errors === _errs19){if(typeof data6 === "string"){if(func2(data6) > 4000){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/code",schemaPath:"#/properties/questions/items/properties/code/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/code",schemaPath:"#/properties/questions/items/properties/code/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs19 === errors;}else {var valid2 = true;}if(valid2){if(data1.options !== undefined){let data7 = data1.options;const _errs21 = errors;if(errors === _errs21){if(Array.isArray(data7)){if(data7.length > 6){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/options",schemaPath:"#/properties/questions/items/properties/options/maxItems",keyword:"maxItems",params:{limit: 6},message:"must NOT have more than 6 items"}];return false;}else {if(data7.length < 3){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/options",schemaPath:"#/properties/questions/items/properties/options/minItems",keyword:"minItems",params:{limit: 3},message:"must NOT have fewer than 3 items"}];return false;}else {var valid7 = true;const len1 = data7.length;for(let i1=0; i1 4000){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/options/" + i1,schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data8) < 1){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/options/" + i1,schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/options/" + i1,schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs23 === errors;if(!valid7){break;}}if(valid7){let i2 = data7.length;let j0;if(i2 > 1){outer0:for(;i2--;){for(j0 = i2; j0--;){if(func0(data7[i2], data7[j0])){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/options",schemaPath:"#/properties/questions/items/properties/options/uniqueItems",keyword:"uniqueItems",params:{i: i2, j: j0},message:"must NOT have duplicate items (items ## "+j0+" and "+i2+" are identical)"}];return false;break outer0;}}}}}}}}else {validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/options",schemaPath:"#/properties/questions/items/properties/options/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs21 === errors;}else {var valid2 = true;}if(valid2){if(data1.expected !== undefined){let data9 = data1.expected;const _errs28 = errors;const _errs29 = errors;const _errs31 = errors;const _errs32 = errors;if(typeof data9 === "string"){if(!pattern8.test(data9)){const err2 = {};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}var valid12 = _errs32 === errors;if(valid12){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/expected",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs31;if(vErrors !== null){if(_errs31){vErrors.length = _errs31;}else {vErrors = null;}}}if(errors === _errs29){if(typeof data9 === "string"){if(func2(data9) > 4000){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/expected",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data9) < 1){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/expected",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/expected",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs28 === errors;}else {var valid2 = true;}if(valid2){if(data1.explain !== undefined){let data10 = data1.explain;const _errs33 = errors;const _errs34 = errors;const _errs36 = errors;const _errs37 = errors;if(typeof data10 === "string"){if(!pattern8.test(data10)){const err3 = {};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}var valid14 = _errs37 === errors;if(valid14){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/explain",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs36;if(vErrors !== null){if(_errs36){vErrors.length = _errs36;}else {vErrors = null;}}}if(errors === _errs34){if(typeof data10 === "string"){if(func2(data10) > 4000){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/explain",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data10) < 1){validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/explain",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate87.errors = [{instancePath:instancePath+"/questions/" + i0+"/explain",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs33 === errors;}else {var valid2 = true;}}}}}}}}}}}else {validate87.errors = [{instancePath:instancePath+"/questions/" + i0,schemaPath:"#/properties/questions/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid1 = _errs4 === errors;if(!valid1){break;}}}}}else {validate87.errors = [{instancePath:instancePath+"/questions",schemaPath:"#/properties/questions/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate87.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate87.errors = vErrors;return errors === 0;}validate87.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateFlashcardsData = validate90;const schema140 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/flashcards.schema.json","type":"object","additionalProperties":false,"required":["cards"],"properties":{"cards":{"type":"array","minItems":1,"maxItems":60,"items":{"type":"object","additionalProperties":false,"required":["front","back"],"properties":{"front":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"},"back":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"}}}}}};function validate90(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/flashcards.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate90.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((data.cards === undefined) && (missing0 = "cards")){validate90.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(key0 === "cards")){validate90.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.cards !== undefined){let data0 = data.cards;const _errs2 = errors;if(errors === _errs2){if(Array.isArray(data0)){if(data0.length > 60){validate90.errors = [{instancePath:instancePath+"/cards",schemaPath:"#/properties/cards/maxItems",keyword:"maxItems",params:{limit: 60},message:"must NOT have more than 60 items"}];return false;}else {if(data0.length < 1){validate90.errors = [{instancePath:instancePath+"/cards",schemaPath:"#/properties/cards/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid1 = true;const len0 = data0.length;for(let i0=0; i0 4000){validate90.errors = [{instancePath:instancePath+"/cards/" + i0+"/front",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data2) < 1){validate90.errors = [{instancePath:instancePath+"/cards/" + i0+"/front",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate90.errors = [{instancePath:instancePath+"/cards/" + i0+"/front",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs7 === errors;}else {var valid2 = true;}if(valid2){if(data1.back !== undefined){let data3 = data1.back;const _errs12 = errors;const _errs13 = errors;const _errs15 = errors;const _errs16 = errors;if(typeof data3 === "string"){if(!pattern8.test(data3)){const err1 = {};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}var valid6 = _errs16 === errors;if(valid6){validate90.errors = [{instancePath:instancePath+"/cards/" + i0+"/back",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs15;if(vErrors !== null){if(_errs15){vErrors.length = _errs15;}else {vErrors = null;}}}if(errors === _errs13){if(typeof data3 === "string"){if(func2(data3) > 4000){validate90.errors = [{instancePath:instancePath+"/cards/" + i0+"/back",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data3) < 1){validate90.errors = [{instancePath:instancePath+"/cards/" + i0+"/back",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate90.errors = [{instancePath:instancePath+"/cards/" + i0+"/back",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs12 === errors;}else {var valid2 = true;}}}}}else {validate90.errors = [{instancePath:instancePath+"/cards/" + i0,schemaPath:"#/properties/cards/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid1 = _errs4 === errors;if(!valid1){break;}}}}}else {validate90.errors = [{instancePath:instancePath+"/cards",schemaPath:"#/properties/cards/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate90.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate90.errors = vErrors;return errors === 0;}validate90.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateFlowMapData = validate91;const schema143 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/flow-map.schema.json","type":"object","additionalProperties":false,"required":["steps"],"properties":{"connections":{"type":"array","maxItems":7,"items":{"$ref":"../common.schema.json#/$defs/shortText"}},"steps":{"type":"array","minItems":2,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["id","title","text"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/id"},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"sub":{"oneOf":[{"$ref":"../common.schema.json#/$defs/shortText"},{"type":"array","minItems":1,"maxItems":3,"items":{"$ref":"../common.schema.json#/$defs/shortText"}}]},"text":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"},"tone":{"$ref":"../common.schema.json#/$defs/tone"}}}}}};const schema148 = {"enum":["gray","purple","teal","coral","pink","blue","green","amber","red"]};function validate92(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate92.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate92.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate92.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate92.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate92.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate92.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate92.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate92.errors = vErrors;return errors === 0;}validate92.evaluated = {"dynamicProps":false,"dynamicItems":false};function validate91(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/flow-map.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate91.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((data.steps === undefined) && (missing0 = "steps")){validate91.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "connections") || (key0 === "steps"))){validate91.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.connections !== undefined){let data0 = data.connections;const _errs2 = errors;if(errors === _errs2){if(Array.isArray(data0)){if(data0.length > 7){validate91.errors = [{instancePath:instancePath+"/connections",schemaPath:"#/properties/connections/maxItems",keyword:"maxItems",params:{limit: 7},message:"must NOT have more than 7 items"}];return false;}else {var valid1 = true;const len0 = data0.length;for(let i0=0; i0 8){validate91.errors = [{instancePath:instancePath+"/steps",schemaPath:"#/properties/steps/maxItems",keyword:"maxItems",params:{limit: 8},message:"must NOT have more than 8 items"}];return false;}else {if(data2.length < 2){validate91.errors = [{instancePath:instancePath+"/steps",schemaPath:"#/properties/steps/minItems",keyword:"minItems",params:{limit: 2},message:"must NOT have fewer than 2 items"}];return false;}else {var valid2 = true;const len1 = data2.length;for(let i1=0; i1 64){validate91.errors = [{instancePath:instancePath+"/steps/" + i1+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data4)){validate91.errors = [{instancePath:instancePath+"/steps/" + i1+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate91.errors = [{instancePath:instancePath+"/steps/" + i1+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs10 === errors;}else {var valid3 = true;}if(valid3){if(data3.title !== undefined){const _errs13 = errors;if(!(validate92(data3.title, {instancePath:instancePath+"/steps/" + i1+"/title",parentData:data3,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate92.errors : vErrors.concat(validate92.errors);errors = vErrors.length;}var valid3 = _errs13 === errors;}else {var valid3 = true;}if(valid3){if(data3.sub !== undefined){let data6 = data3.sub;const _errs14 = errors;const _errs15 = errors;let valid5 = false;let passing0 = null;const _errs16 = errors;if(!(validate92(data6, {instancePath:instancePath+"/steps/" + i1+"/sub",parentData:data3,parentDataProperty:"sub",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate92.errors : vErrors.concat(validate92.errors);errors = vErrors.length;}var _valid0 = _errs16 === errors;if(_valid0){valid5 = true;passing0 = 0;}const _errs17 = errors;if(errors === _errs17){if(Array.isArray(data6)){if(data6.length > 3){const err0 = {instancePath:instancePath+"/steps/" + i1+"/sub",schemaPath:"#/properties/steps/items/properties/sub/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 3},message:"must NOT have more than 3 items"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}else {if(data6.length < 1){const err1 = {instancePath:instancePath+"/steps/" + i1+"/sub",schemaPath:"#/properties/steps/items/properties/sub/oneOf/1/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}else {var valid6 = true;const len2 = data6.length;for(let i2=0; i2 4000){validate91.errors = [{instancePath:instancePath+"/steps/" + i1+"/text",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data8) < 1){validate91.errors = [{instancePath:instancePath+"/steps/" + i1+"/text",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate91.errors = [{instancePath:instancePath+"/steps/" + i1+"/text",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs20 === errors;}else {var valid3 = true;}if(valid3){if(data3.tone !== undefined){let data9 = data3.tone;const _errs25 = errors;if(!(((((((((data9 === "gray") || (data9 === "purple")) || (data9 === "teal")) || (data9 === "coral")) || (data9 === "pink")) || (data9 === "blue")) || (data9 === "green")) || (data9 === "amber")) || (data9 === "red"))){validate91.errors = [{instancePath:instancePath+"/steps/" + i1+"/tone",schemaPath:"../common.schema.json#/$defs/tone/enum",keyword:"enum",params:{allowedValues: schema148.enum},message:"must be equal to one of the allowed values"}];return false;}var valid3 = _errs25 === errors;}else {var valid3 = true;}}}}}}}}else {validate91.errors = [{instancePath:instancePath+"/steps/" + i1,schemaPath:"#/properties/steps/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs7 === errors;if(!valid2){break;}}}}}else {validate91.errors = [{instancePath:instancePath+"/steps",schemaPath:"#/properties/steps/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}}}}}else {validate91.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate91.errors = vErrors;return errors === 0;}validate91.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateDiagramData = validate97;const schema149 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/diagram.schema.json","type":"object","additionalProperties":false,"required":["title","height","elements"],"properties":{"title":{"type":"string","minLength":1,"maxLength":200},"caption":{"type":"string","minLength":0,"maxLength":600},"height":{"type":"integer","minimum":40,"maximum":1200},"width":{"type":"integer","minimum":200,"maximum":1600},"expandable":{"type":"boolean"},"mode":{"enum":["static","select","steps"]},"initial":{"$ref":"#/$defs/viewKey"},"hint":{"type":"string","minLength":0,"maxLength":300},"elements":{"type":"array","minItems":1,"maxItems":120,"items":{"type":"object","required":["kind"],"properties":{"kind":{"enum":["node","group","arrow","label","badge"]}},"allOf":[{"if":{"properties":{"kind":{"const":"node"}},"required":["kind"]},"then":{"$ref":"#/$defs/node"}},{"if":{"properties":{"kind":{"const":"group"}},"required":["kind"]},"then":{"$ref":"#/$defs/group"}},{"if":{"properties":{"kind":{"const":"arrow"}},"required":["kind"]},"then":{"$ref":"#/$defs/arrow"}},{"if":{"properties":{"kind":{"const":"label"}},"required":["kind"]},"then":{"$ref":"#/$defs/label"}},{"if":{"properties":{"kind":{"const":"badge"}},"required":["kind"]},"then":{"$ref":"#/$defs/badge"}}]}},"info":{"type":"object","maxProperties":30,"propertyNames":{"$ref":"../common.schema.json#/$defs/id"},"additionalProperties":{"type":"object","additionalProperties":false,"required":["title","text"],"properties":{"title":{"type":"string","minLength":1,"maxLength":200},"text":{"type":"string","minLength":1,"maxLength":1500},"tone":{"$ref":"../common.schema.json#/$defs/tone"},"code":{"type":"string","minLength":0,"maxLength":2000}}}},"steps":{"type":"array","minItems":2,"maxItems":12,"items":{"type":"object","additionalProperties":false,"required":["title"],"properties":{"title":{"type":"string","minLength":1,"maxLength":200},"text":{"type":"string","minLength":0,"maxLength":600}}}}},"$defs":{"viewKey":{"$ref":"../common.schema.json#/$defs/id"},"node":{"type":"object","additionalProperties":false,"required":["kind","x","y","w","h"],"properties":{"kind":{"const":"node"},"x":{"type":"number","minimum":-400,"maximum":2400},"y":{"type":"number","minimum":-400,"maximum":2400},"w":{"type":"number","minimum":1,"maximum":2400},"h":{"type":"number","minimum":1,"maximum":2400},"tone":{"$ref":"../common.schema.json#/$defs/tone"},"title":{"type":"string","minLength":0,"maxLength":200},"sub":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"array","minItems":1,"maxItems":6,"items":{"type":"string","minLength":0,"maxLength":300}}]},"mono":{"type":"boolean"},"rx":{"type":"number","minimum":0,"maximum":60},"titleSize":{"type":"number","minimum":8,"maximum":32},"align":{"enum":["start","middle"]},"select":{"$ref":"#/$defs/viewKey"},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}},"group":{"type":"object","additionalProperties":false,"required":["kind","x","y","w","h"],"properties":{"kind":{"const":"group"},"x":{"type":"number","minimum":-400,"maximum":2400},"y":{"type":"number","minimum":-400,"maximum":2400},"w":{"type":"number","minimum":1,"maximum":2400},"h":{"type":"number","minimum":1,"maximum":2400},"tone":{"$ref":"../common.schema.json#/$defs/tone"},"label":{"type":"string","minLength":0,"maxLength":200},"sub":{"type":"string","minLength":0,"maxLength":200},"solid":{"type":"boolean"},"select":{"$ref":"#/$defs/viewKey"},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}},"arrow":{"type":"object","additionalProperties":false,"required":["kind","points"],"properties":{"kind":{"const":"arrow"},"points":{"type":"array","minItems":2,"maxItems":12,"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"number","minimum":-400,"maximum":2400}}},"label":{"type":"string","minLength":0,"maxLength":120},"labelAt":{"type":"number","minimum":0,"maximum":1},"labelDx":{"type":"number","minimum":-400,"maximum":2400},"labelDy":{"type":"number","minimum":-400,"maximum":2400},"dashed":{"type":"boolean"},"both":{"type":"boolean"},"variant":{"enum":["ok","bad"]},"labelAnchor":{"enum":["start","middle","end"]},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}},"label":{"type":"object","additionalProperties":false,"required":["kind","x","y","text"],"properties":{"kind":{"const":"label"},"x":{"type":"number","minimum":-400,"maximum":2400},"y":{"type":"number","minimum":-400,"maximum":2400},"text":{"type":"string","minLength":0,"maxLength":200},"anchor":{"enum":["start","middle","end"]},"size":{"type":"number","minimum":8,"maximum":32},"muted":{"type":"boolean"},"weight":{"type":"number","minimum":100,"maximum":900},"mono":{"type":"boolean"},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}},"badge":{"type":"object","additionalProperties":false,"required":["kind","x","y"],"properties":{"kind":{"const":"badge"},"x":{"type":"number","minimum":-400,"maximum":2400},"y":{"type":"number","minimum":-400,"maximum":2400},"n":{"type":"integer","minimum":0,"maximum":99},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}}}};const schema151 = {"type":"object","additionalProperties":false,"required":["kind","x","y","w","h"],"properties":{"kind":{"const":"node"},"x":{"type":"number","minimum":-400,"maximum":2400},"y":{"type":"number","minimum":-400,"maximum":2400},"w":{"type":"number","minimum":1,"maximum":2400},"h":{"type":"number","minimum":1,"maximum":2400},"tone":{"$ref":"../common.schema.json#/$defs/tone"},"title":{"type":"string","minLength":0,"maxLength":200},"sub":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"array","minItems":1,"maxItems":6,"items":{"type":"string","minLength":0,"maxLength":300}}]},"mono":{"type":"boolean"},"rx":{"type":"number","minimum":0,"maximum":60},"titleSize":{"type":"number","minimum":8,"maximum":32},"align":{"enum":["start","middle"]},"select":{"$ref":"#/$defs/viewKey"},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}};function validate98(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate98.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((((data.kind === undefined) && (missing0 = "kind")) || ((data.x === undefined) && (missing0 = "x"))) || ((data.y === undefined) && (missing0 = "y"))) || ((data.w === undefined) && (missing0 = "w"))) || ((data.h === undefined) && (missing0 = "h"))){validate98.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema151.properties, key0))){validate98.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.kind !== undefined){const _errs2 = errors;if("node" !== data.kind){validate98.errors = [{instancePath:instancePath+"/kind",schemaPath:"#/properties/kind/const",keyword:"const",params:{allowedValue: "node"},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.x !== undefined){let data1 = data.x;const _errs3 = errors;if(errors === _errs3){if((typeof data1 == "number") && (isFinite(data1))){if(data1 > 2400 || isNaN(data1)){validate98.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data1 < -400 || isNaN(data1)){validate98.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate98.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.y !== undefined){let data2 = data.y;const _errs5 = errors;if(errors === _errs5){if((typeof data2 == "number") && (isFinite(data2))){if(data2 > 2400 || isNaN(data2)){validate98.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data2 < -400 || isNaN(data2)){validate98.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate98.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.w !== undefined){let data3 = data.w;const _errs7 = errors;if(errors === _errs7){if((typeof data3 == "number") && (isFinite(data3))){if(data3 > 2400 || isNaN(data3)){validate98.errors = [{instancePath:instancePath+"/w",schemaPath:"#/properties/w/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data3 < 1 || isNaN(data3)){validate98.errors = [{instancePath:instancePath+"/w",schemaPath:"#/properties/w/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}else {validate98.errors = [{instancePath:instancePath+"/w",schemaPath:"#/properties/w/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.h !== undefined){let data4 = data.h;const _errs9 = errors;if(errors === _errs9){if((typeof data4 == "number") && (isFinite(data4))){if(data4 > 2400 || isNaN(data4)){validate98.errors = [{instancePath:instancePath+"/h",schemaPath:"#/properties/h/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data4 < 1 || isNaN(data4)){validate98.errors = [{instancePath:instancePath+"/h",schemaPath:"#/properties/h/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}else {validate98.errors = [{instancePath:instancePath+"/h",schemaPath:"#/properties/h/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs9 === errors;}else {var valid0 = true;}if(valid0){if(data.tone !== undefined){let data5 = data.tone;const _errs11 = errors;if(!(((((((((data5 === "gray") || (data5 === "purple")) || (data5 === "teal")) || (data5 === "coral")) || (data5 === "pink")) || (data5 === "blue")) || (data5 === "green")) || (data5 === "amber")) || (data5 === "red"))){validate98.errors = [{instancePath:instancePath+"/tone",schemaPath:"../common.schema.json#/$defs/tone/enum",keyword:"enum",params:{allowedValues: schema148.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs11 === errors;}else {var valid0 = true;}if(valid0){if(data.title !== undefined){let data6 = data.title;const _errs13 = errors;if(errors === _errs13){if(typeof data6 === "string"){if(func2(data6) > 200){validate98.errors = [{instancePath:instancePath+"/title",schemaPath:"#/properties/title/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}else {if(func2(data6) < 0){validate98.errors = [{instancePath:instancePath+"/title",schemaPath:"#/properties/title/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate98.errors = [{instancePath:instancePath+"/title",schemaPath:"#/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs13 === errors;}else {var valid0 = true;}if(valid0){if(data.sub !== undefined){let data7 = data.sub;const _errs15 = errors;const _errs16 = errors;let valid2 = false;let passing0 = null;const _errs17 = errors;if(errors === _errs17){if(typeof data7 === "string"){if(func2(data7) > 300){const err0 = {instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/oneOf/0/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}else {if(func2(data7) < 0){const err1 = {instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/oneOf/0/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}}else {const err2 = {instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}var _valid0 = _errs17 === errors;if(_valid0){valid2 = true;passing0 = 0;}const _errs19 = errors;if(errors === _errs19){if(Array.isArray(data7)){if(data7.length > 6){const err3 = {instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 6},message:"must NOT have more than 6 items"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}else {if(data7.length < 1){const err4 = {instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/oneOf/1/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}else {var valid3 = true;const len0 = data7.length;for(let i0=0; i0 300){const err5 = {instancePath:instancePath+"/sub/" + i0,schemaPath:"#/properties/sub/oneOf/1/items/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}else {if(func2(data8) < 0){const err6 = {instancePath:instancePath+"/sub/" + i0,schemaPath:"#/properties/sub/oneOf/1/items/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}}else {const err7 = {instancePath:instancePath+"/sub/" + i0,schemaPath:"#/properties/sub/oneOf/1/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}var valid3 = _errs21 === errors;if(!valid3){break;}}}}}else {const err8 = {instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}var _valid0 = _errs19 === errors;if(_valid0 && valid2){valid2 = false;passing0 = [passing0, 1];}else {if(_valid0){valid2 = true;passing0 = 1;}}if(!valid2){const err9 = {instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;validate98.errors = vErrors;return false;}else {errors = _errs16;if(vErrors !== null){if(_errs16){vErrors.length = _errs16;}else {vErrors = null;}}}var valid0 = _errs15 === errors;}else {var valid0 = true;}if(valid0){if(data.mono !== undefined){const _errs23 = errors;if(typeof data.mono !== "boolean"){validate98.errors = [{instancePath:instancePath+"/mono",schemaPath:"#/properties/mono/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs23 === errors;}else {var valid0 = true;}if(valid0){if(data.rx !== undefined){let data10 = data.rx;const _errs25 = errors;if(errors === _errs25){if((typeof data10 == "number") && (isFinite(data10))){if(data10 > 60 || isNaN(data10)){validate98.errors = [{instancePath:instancePath+"/rx",schemaPath:"#/properties/rx/maximum",keyword:"maximum",params:{comparison: "<=", limit: 60},message:"must be <= 60"}];return false;}else {if(data10 < 0 || isNaN(data10)){validate98.errors = [{instancePath:instancePath+"/rx",schemaPath:"#/properties/rx/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"}];return false;}}}else {validate98.errors = [{instancePath:instancePath+"/rx",schemaPath:"#/properties/rx/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs25 === errors;}else {var valid0 = true;}if(valid0){if(data.titleSize !== undefined){let data11 = data.titleSize;const _errs27 = errors;if(errors === _errs27){if((typeof data11 == "number") && (isFinite(data11))){if(data11 > 32 || isNaN(data11)){validate98.errors = [{instancePath:instancePath+"/titleSize",schemaPath:"#/properties/titleSize/maximum",keyword:"maximum",params:{comparison: "<=", limit: 32},message:"must be <= 32"}];return false;}else {if(data11 < 8 || isNaN(data11)){validate98.errors = [{instancePath:instancePath+"/titleSize",schemaPath:"#/properties/titleSize/minimum",keyword:"minimum",params:{comparison: ">=", limit: 8},message:"must be >= 8"}];return false;}}}else {validate98.errors = [{instancePath:instancePath+"/titleSize",schemaPath:"#/properties/titleSize/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs27 === errors;}else {var valid0 = true;}if(valid0){if(data.align !== undefined){let data12 = data.align;const _errs29 = errors;if(!((data12 === "start") || (data12 === "middle"))){validate98.errors = [{instancePath:instancePath+"/align",schemaPath:"#/properties/align/enum",keyword:"enum",params:{allowedValues: schema151.properties.align.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs29 === errors;}else {var valid0 = true;}if(valid0){if(data.select !== undefined){let data13 = data.select;const _errs30 = errors;const _errs31 = errors;if(errors === _errs31){if(typeof data13 === "string"){if(func2(data13) > 64){validate98.errors = [{instancePath:instancePath+"/select",schemaPath:"#/$defs/viewKey/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data13)){validate98.errors = [{instancePath:instancePath+"/select",schemaPath:"#/$defs/viewKey/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate98.errors = [{instancePath:instancePath+"/select",schemaPath:"#/$defs/viewKey/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs30 === errors;}else {var valid0 = true;}if(valid0){if(data.active !== undefined){let data14 = data.active;const _errs33 = errors;const _errs34 = errors;let valid5 = false;let passing1 = null;const _errs35 = errors;if(typeof data14 !== "boolean"){const err10 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}var _valid1 = _errs35 === errors;if(_valid1){valid5 = true;passing1 = 0;}const _errs37 = errors;if(errors === _errs37){if(Array.isArray(data14)){if(data14.length > 20){const err11 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}else {var valid6 = true;const len1 = data14.length;for(let i1=0; i1 15 || isNaN(data15)){const err13 = {instancePath:instancePath+"/active/" + i1,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}else {if(data15 < 0 || isNaN(data15)){const err14 = {instancePath:instancePath+"/active/" + i1,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}}var _valid2 = _errs41 === errors;if(_valid2){valid7 = true;passing2 = 0;}const _errs43 = errors;const _errs44 = errors;if(errors === _errs44){if(typeof data15 === "string"){if(func2(data15) > 64){const err15 = {instancePath:instancePath+"/active/" + i1,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}else {if(!pattern18.test(data15)){const err16 = {instancePath:instancePath+"/active/" + i1,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}}else {const err17 = {instancePath:instancePath+"/active/" + i1,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}var _valid2 = _errs43 === errors;if(_valid2 && valid7){valid7 = false;passing2 = [passing2, 1];}else {if(_valid2){valid7 = true;passing2 = 1;}}if(!valid7){const err18 = {instancePath:instancePath+"/active/" + i1,schemaPath:"#/properties/active/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing2},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}else {errors = _errs40;if(vErrors !== null){if(_errs40){vErrors.length = _errs40;}else {vErrors = null;}}}var valid6 = _errs39 === errors;if(!valid6){break;}}}}else {const err19 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}var _valid1 = _errs37 === errors;if(_valid1 && valid5){valid5 = false;passing1 = [passing1, 1];}else {if(_valid1){valid5 = true;passing1 = 1;}}if(!valid5){const err20 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf",keyword:"oneOf",params:{passingSchemas: passing1},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;validate98.errors = vErrors;return false;}else {errors = _errs34;if(vErrors !== null){if(_errs34){vErrors.length = _errs34;}else {vErrors = null;}}}var valid0 = _errs33 === errors;}else {var valid0 = true;}if(valid0){if(data.hot !== undefined){let data16 = data.hot;const _errs46 = errors;const _errs47 = errors;let valid9 = false;let passing3 = null;const _errs48 = errors;if(typeof data16 !== "boolean"){const err21 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}var _valid3 = _errs48 === errors;if(_valid3){valid9 = true;passing3 = 0;}const _errs50 = errors;if(errors === _errs50){if(Array.isArray(data16)){if(data16.length > 20){const err22 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}else {var valid10 = true;const len2 = data16.length;for(let i2=0; i2 15 || isNaN(data17)){const err24 = {instancePath:instancePath+"/hot/" + i2,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}else {if(data17 < 0 || isNaN(data17)){const err25 = {instancePath:instancePath+"/hot/" + i2,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}}}var _valid4 = _errs54 === errors;if(_valid4){valid11 = true;passing4 = 0;}const _errs56 = errors;const _errs57 = errors;if(errors === _errs57){if(typeof data17 === "string"){if(func2(data17) > 64){const err26 = {instancePath:instancePath+"/hot/" + i2,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}else {if(!pattern18.test(data17)){const err27 = {instancePath:instancePath+"/hot/" + i2,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}}else {const err28 = {instancePath:instancePath+"/hot/" + i2,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}var _valid4 = _errs56 === errors;if(_valid4 && valid11){valid11 = false;passing4 = [passing4, 1];}else {if(_valid4){valid11 = true;passing4 = 1;}}if(!valid11){const err29 = {instancePath:instancePath+"/hot/" + i2,schemaPath:"#/properties/hot/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing4},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}else {errors = _errs53;if(vErrors !== null){if(_errs53){vErrors.length = _errs53;}else {vErrors = null;}}}var valid10 = _errs52 === errors;if(!valid10){break;}}}}else {const err30 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}var _valid3 = _errs50 === errors;if(_valid3 && valid9){valid9 = false;passing3 = [passing3, 1];}else {if(_valid3){valid9 = true;passing3 = 1;}}if(!valid9){const err31 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf",keyword:"oneOf",params:{passingSchemas: passing3},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;validate98.errors = vErrors;return false;}else {errors = _errs47;if(vErrors !== null){if(_errs47){vErrors.length = _errs47;}else {vErrors = null;}}}var valid0 = _errs46 === errors;}else {var valid0 = true;}if(valid0){if(data.dim !== undefined){const _errs59 = errors;if(typeof data.dim !== "boolean"){validate98.errors = [{instancePath:instancePath+"/dim",schemaPath:"#/properties/dim/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs59 === errors;}else {var valid0 = true;}if(valid0){if(data.visible !== undefined){let data19 = data.visible;const _errs61 = errors;if(errors === _errs61){if(Array.isArray(data19)){if(data19.length > 20){validate98.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid13 = true;const len3 = data19.length;for(let i3=0; i3 15 || isNaN(data20)){const err33 = {instancePath:instancePath+"/visible/" + i3,schemaPath:"#/properties/visible/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}else {if(data20 < 0 || isNaN(data20)){const err34 = {instancePath:instancePath+"/visible/" + i3,schemaPath:"#/properties/visible/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}}}var _valid5 = _errs65 === errors;if(_valid5){valid14 = true;passing5 = 0;}const _errs67 = errors;const _errs68 = errors;if(errors === _errs68){if(typeof data20 === "string"){if(func2(data20) > 64){const err35 = {instancePath:instancePath+"/visible/" + i3,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}else {if(!pattern18.test(data20)){const err36 = {instancePath:instancePath+"/visible/" + i3,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}}else {const err37 = {instancePath:instancePath+"/visible/" + i3,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}var _valid5 = _errs67 === errors;if(_valid5 && valid14){valid14 = false;passing5 = [passing5, 1];}else {if(_valid5){valid14 = true;passing5 = 1;}}if(!valid14){const err38 = {instancePath:instancePath+"/visible/" + i3,schemaPath:"#/properties/visible/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing5},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;validate98.errors = vErrors;return false;}else {errors = _errs64;if(vErrors !== null){if(_errs64){vErrors.length = _errs64;}else {vErrors = null;}}}var valid13 = _errs63 === errors;if(!valid13){break;}}}}else {validate98.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs61 === errors;}else {var valid0 = true;}if(valid0){if(data.overrides !== undefined){let data21 = data.overrides;const _errs70 = errors;if(errors === _errs70){if(data21 && typeof data21 == "object" && !Array.isArray(data21)){if(Object.keys(data21).length > 6){validate98.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/maxProperties",keyword:"maxProperties",params:{limit: 6},message:"must NOT have more than 6 properties"}];return false;}else {for(const key1 in data21){const _errs72 = errors;if(!(((((((key1 === "title") || (key1 === "sub")) || (key1 === "label")) || (key1 === "text")) || (key1 === "n")) || (key1 === "dashed")) || (key1 === "muted"))){const err39 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames/enum",keyword:"enum",params:{allowedValues: schema151.properties.overrides.propertyNames.enum},message:"must be equal to one of the allowed values",propertyName:key1};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}var valid16 = _errs72 === errors;if(!valid16){const err40 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames",keyword:"propertyNames",params:{propertyName: key1},message:"property name must be valid"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;validate98.errors = vErrors;return false;break;}}if(valid16){for(const key2 in data21){let data22 = data21[key2];const _errs74 = errors;if(errors === _errs74){if(data22 && typeof data22 == "object" && !Array.isArray(data22)){if(Object.keys(data22).length > 20){validate98.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/maxProperties",keyword:"maxProperties",params:{limit: 20},message:"must NOT have more than 20 properties"}];return false;}else {for(const key3 in data22){let data23 = data22[key3];const _errs77 = errors;const _errs78 = errors;let valid19 = false;let passing6 = null;const _errs79 = errors;if(errors === _errs79){if(typeof data23 === "string"){if(func2(data23) > 300){const err41 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}else {if(func2(data23) < 0){const err42 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}}else {const err43 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}}var _valid6 = _errs79 === errors;if(_valid6){valid19 = true;passing6 = 0;}const _errs81 = errors;if(!((typeof data23 == "number") && (isFinite(data23)))){const err44 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/1/type",keyword:"type",params:{type: "number"},message:"must be number"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}var _valid6 = _errs81 === errors;if(_valid6 && valid19){valid19 = false;passing6 = [passing6, 1];}else {if(_valid6){valid19 = true;passing6 = 1;}const _errs83 = errors;if(typeof data23 !== "boolean"){const err45 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/2/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}var _valid6 = _errs83 === errors;if(_valid6 && valid19){valid19 = false;passing6 = [passing6, 2];}else {if(_valid6){valid19 = true;passing6 = 2;}const _errs85 = errors;if(errors === _errs85){if(Array.isArray(data23)){if(data23.length > 3){const err46 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/maxItems",keyword:"maxItems",params:{limit: 3},message:"must NOT have more than 3 items"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}else {var valid20 = true;const len4 = data23.length;for(let i4=0; i4 300){const err47 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i4,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}else {if(func2(data24) < 0){const err48 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i4,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}}}else {const err49 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i4,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err49];}else {vErrors.push(err49);}errors++;}}var valid20 = _errs87 === errors;if(!valid20){break;}}}}else {const err50 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err50];}else {vErrors.push(err50);}errors++;}}var _valid6 = _errs85 === errors;if(_valid6 && valid19){valid19 = false;passing6 = [passing6, 3];}else {if(_valid6){valid19 = true;passing6 = 3;}}}}if(!valid19){const err51 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf",keyword:"oneOf",params:{passingSchemas: passing6},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err51];}else {vErrors.push(err51);}errors++;validate98.errors = vErrors;return false;}else {errors = _errs78;if(vErrors !== null){if(_errs78){vErrors.length = _errs78;}else {vErrors = null;}}}var valid18 = _errs77 === errors;if(!valid18){break;}}}}else {validate98.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid17 = _errs74 === errors;if(!valid17){break;}}}}}else {validate98.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs70 === errors;}else {var valid0 = true;}}}}}}}}}}}}}}}}}}}}}else {validate98.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate98.errors = vErrors;return errors === 0;}validate98.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema157 = {"type":"object","additionalProperties":false,"required":["kind","x","y","w","h"],"properties":{"kind":{"const":"group"},"x":{"type":"number","minimum":-400,"maximum":2400},"y":{"type":"number","minimum":-400,"maximum":2400},"w":{"type":"number","minimum":1,"maximum":2400},"h":{"type":"number","minimum":1,"maximum":2400},"tone":{"$ref":"../common.schema.json#/$defs/tone"},"label":{"type":"string","minLength":0,"maxLength":200},"sub":{"type":"string","minLength":0,"maxLength":200},"solid":{"type":"boolean"},"select":{"$ref":"#/$defs/viewKey"},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}};function validate100(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate100.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((((data.kind === undefined) && (missing0 = "kind")) || ((data.x === undefined) && (missing0 = "x"))) || ((data.y === undefined) && (missing0 = "y"))) || ((data.w === undefined) && (missing0 = "w"))) || ((data.h === undefined) && (missing0 = "h"))){validate100.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema157.properties, key0))){validate100.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.kind !== undefined){const _errs2 = errors;if("group" !== data.kind){validate100.errors = [{instancePath:instancePath+"/kind",schemaPath:"#/properties/kind/const",keyword:"const",params:{allowedValue: "group"},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.x !== undefined){let data1 = data.x;const _errs3 = errors;if(errors === _errs3){if((typeof data1 == "number") && (isFinite(data1))){if(data1 > 2400 || isNaN(data1)){validate100.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data1 < -400 || isNaN(data1)){validate100.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate100.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.y !== undefined){let data2 = data.y;const _errs5 = errors;if(errors === _errs5){if((typeof data2 == "number") && (isFinite(data2))){if(data2 > 2400 || isNaN(data2)){validate100.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data2 < -400 || isNaN(data2)){validate100.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate100.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.w !== undefined){let data3 = data.w;const _errs7 = errors;if(errors === _errs7){if((typeof data3 == "number") && (isFinite(data3))){if(data3 > 2400 || isNaN(data3)){validate100.errors = [{instancePath:instancePath+"/w",schemaPath:"#/properties/w/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data3 < 1 || isNaN(data3)){validate100.errors = [{instancePath:instancePath+"/w",schemaPath:"#/properties/w/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}else {validate100.errors = [{instancePath:instancePath+"/w",schemaPath:"#/properties/w/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.h !== undefined){let data4 = data.h;const _errs9 = errors;if(errors === _errs9){if((typeof data4 == "number") && (isFinite(data4))){if(data4 > 2400 || isNaN(data4)){validate100.errors = [{instancePath:instancePath+"/h",schemaPath:"#/properties/h/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data4 < 1 || isNaN(data4)){validate100.errors = [{instancePath:instancePath+"/h",schemaPath:"#/properties/h/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}else {validate100.errors = [{instancePath:instancePath+"/h",schemaPath:"#/properties/h/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs9 === errors;}else {var valid0 = true;}if(valid0){if(data.tone !== undefined){let data5 = data.tone;const _errs11 = errors;if(!(((((((((data5 === "gray") || (data5 === "purple")) || (data5 === "teal")) || (data5 === "coral")) || (data5 === "pink")) || (data5 === "blue")) || (data5 === "green")) || (data5 === "amber")) || (data5 === "red"))){validate100.errors = [{instancePath:instancePath+"/tone",schemaPath:"../common.schema.json#/$defs/tone/enum",keyword:"enum",params:{allowedValues: schema148.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs11 === errors;}else {var valid0 = true;}if(valid0){if(data.label !== undefined){let data6 = data.label;const _errs13 = errors;if(errors === _errs13){if(typeof data6 === "string"){if(func2(data6) > 200){validate100.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}else {if(func2(data6) < 0){validate100.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate100.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs13 === errors;}else {var valid0 = true;}if(valid0){if(data.sub !== undefined){let data7 = data.sub;const _errs15 = errors;if(errors === _errs15){if(typeof data7 === "string"){if(func2(data7) > 200){validate100.errors = [{instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}else {if(func2(data7) < 0){validate100.errors = [{instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate100.errors = [{instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs15 === errors;}else {var valid0 = true;}if(valid0){if(data.solid !== undefined){const _errs17 = errors;if(typeof data.solid !== "boolean"){validate100.errors = [{instancePath:instancePath+"/solid",schemaPath:"#/properties/solid/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs17 === errors;}else {var valid0 = true;}if(valid0){if(data.select !== undefined){let data9 = data.select;const _errs19 = errors;const _errs20 = errors;if(errors === _errs20){if(typeof data9 === "string"){if(func2(data9) > 64){validate100.errors = [{instancePath:instancePath+"/select",schemaPath:"#/$defs/viewKey/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data9)){validate100.errors = [{instancePath:instancePath+"/select",schemaPath:"#/$defs/viewKey/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate100.errors = [{instancePath:instancePath+"/select",schemaPath:"#/$defs/viewKey/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs19 === errors;}else {var valid0 = true;}if(valid0){if(data.active !== undefined){let data10 = data.active;const _errs22 = errors;const _errs23 = errors;let valid3 = false;let passing0 = null;const _errs24 = errors;if(typeof data10 !== "boolean"){const err0 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}var _valid0 = _errs24 === errors;if(_valid0){valid3 = true;passing0 = 0;}const _errs26 = errors;if(errors === _errs26){if(Array.isArray(data10)){if(data10.length > 20){const err1 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}else {var valid4 = true;const len0 = data10.length;for(let i0=0; i0 15 || isNaN(data11)){const err3 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}else {if(data11 < 0 || isNaN(data11)){const err4 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}}}var _valid1 = _errs30 === errors;if(_valid1){valid5 = true;passing1 = 0;}const _errs32 = errors;const _errs33 = errors;if(errors === _errs33){if(typeof data11 === "string"){if(func2(data11) > 64){const err5 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}else {if(!pattern18.test(data11)){const err6 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}}else {const err7 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}var _valid1 = _errs32 === errors;if(_valid1 && valid5){valid5 = false;passing1 = [passing1, 1];}else {if(_valid1){valid5 = true;passing1 = 1;}}if(!valid5){const err8 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing1},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}else {errors = _errs29;if(vErrors !== null){if(_errs29){vErrors.length = _errs29;}else {vErrors = null;}}}var valid4 = _errs28 === errors;if(!valid4){break;}}}}else {const err9 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}var _valid0 = _errs26 === errors;if(_valid0 && valid3){valid3 = false;passing0 = [passing0, 1];}else {if(_valid0){valid3 = true;passing0 = 1;}}if(!valid3){const err10 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;validate100.errors = vErrors;return false;}else {errors = _errs23;if(vErrors !== null){if(_errs23){vErrors.length = _errs23;}else {vErrors = null;}}}var valid0 = _errs22 === errors;}else {var valid0 = true;}if(valid0){if(data.hot !== undefined){let data12 = data.hot;const _errs35 = errors;const _errs36 = errors;let valid7 = false;let passing2 = null;const _errs37 = errors;if(typeof data12 !== "boolean"){const err11 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}var _valid2 = _errs37 === errors;if(_valid2){valid7 = true;passing2 = 0;}const _errs39 = errors;if(errors === _errs39){if(Array.isArray(data12)){if(data12.length > 20){const err12 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}else {var valid8 = true;const len1 = data12.length;for(let i1=0; i1 15 || isNaN(data13)){const err14 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}else {if(data13 < 0 || isNaN(data13)){const err15 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}}var _valid3 = _errs43 === errors;if(_valid3){valid9 = true;passing3 = 0;}const _errs45 = errors;const _errs46 = errors;if(errors === _errs46){if(typeof data13 === "string"){if(func2(data13) > 64){const err16 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}else {if(!pattern18.test(data13)){const err17 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}else {const err18 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}var _valid3 = _errs45 === errors;if(_valid3 && valid9){valid9 = false;passing3 = [passing3, 1];}else {if(_valid3){valid9 = true;passing3 = 1;}}if(!valid9){const err19 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing3},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}else {errors = _errs42;if(vErrors !== null){if(_errs42){vErrors.length = _errs42;}else {vErrors = null;}}}var valid8 = _errs41 === errors;if(!valid8){break;}}}}else {const err20 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}var _valid2 = _errs39 === errors;if(_valid2 && valid7){valid7 = false;passing2 = [passing2, 1];}else {if(_valid2){valid7 = true;passing2 = 1;}}if(!valid7){const err21 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf",keyword:"oneOf",params:{passingSchemas: passing2},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;validate100.errors = vErrors;return false;}else {errors = _errs36;if(vErrors !== null){if(_errs36){vErrors.length = _errs36;}else {vErrors = null;}}}var valid0 = _errs35 === errors;}else {var valid0 = true;}if(valid0){if(data.dim !== undefined){const _errs48 = errors;if(typeof data.dim !== "boolean"){validate100.errors = [{instancePath:instancePath+"/dim",schemaPath:"#/properties/dim/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs48 === errors;}else {var valid0 = true;}if(valid0){if(data.visible !== undefined){let data15 = data.visible;const _errs50 = errors;if(errors === _errs50){if(Array.isArray(data15)){if(data15.length > 20){validate100.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid11 = true;const len2 = data15.length;for(let i2=0; i2 15 || isNaN(data16)){const err23 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}else {if(data16 < 0 || isNaN(data16)){const err24 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}}}var _valid4 = _errs54 === errors;if(_valid4){valid12 = true;passing4 = 0;}const _errs56 = errors;const _errs57 = errors;if(errors === _errs57){if(typeof data16 === "string"){if(func2(data16) > 64){const err25 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}else {if(!pattern18.test(data16)){const err26 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}}else {const err27 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}var _valid4 = _errs56 === errors;if(_valid4 && valid12){valid12 = false;passing4 = [passing4, 1];}else {if(_valid4){valid12 = true;passing4 = 1;}}if(!valid12){const err28 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing4},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;validate100.errors = vErrors;return false;}else {errors = _errs53;if(vErrors !== null){if(_errs53){vErrors.length = _errs53;}else {vErrors = null;}}}var valid11 = _errs52 === errors;if(!valid11){break;}}}}else {validate100.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs50 === errors;}else {var valid0 = true;}if(valid0){if(data.overrides !== undefined){let data17 = data.overrides;const _errs59 = errors;if(errors === _errs59){if(data17 && typeof data17 == "object" && !Array.isArray(data17)){if(Object.keys(data17).length > 6){validate100.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/maxProperties",keyword:"maxProperties",params:{limit: 6},message:"must NOT have more than 6 properties"}];return false;}else {for(const key1 in data17){const _errs61 = errors;if(!(((((((key1 === "title") || (key1 === "sub")) || (key1 === "label")) || (key1 === "text")) || (key1 === "n")) || (key1 === "dashed")) || (key1 === "muted"))){const err29 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames/enum",keyword:"enum",params:{allowedValues: schema157.properties.overrides.propertyNames.enum},message:"must be equal to one of the allowed values",propertyName:key1};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}var valid14 = _errs61 === errors;if(!valid14){const err30 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames",keyword:"propertyNames",params:{propertyName: key1},message:"property name must be valid"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;validate100.errors = vErrors;return false;break;}}if(valid14){for(const key2 in data17){let data18 = data17[key2];const _errs63 = errors;if(errors === _errs63){if(data18 && typeof data18 == "object" && !Array.isArray(data18)){if(Object.keys(data18).length > 20){validate100.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/maxProperties",keyword:"maxProperties",params:{limit: 20},message:"must NOT have more than 20 properties"}];return false;}else {for(const key3 in data18){let data19 = data18[key3];const _errs66 = errors;const _errs67 = errors;let valid17 = false;let passing5 = null;const _errs68 = errors;if(errors === _errs68){if(typeof data19 === "string"){if(func2(data19) > 300){const err31 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}else {if(func2(data19) < 0){const err32 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}}else {const err33 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}var _valid5 = _errs68 === errors;if(_valid5){valid17 = true;passing5 = 0;}const _errs70 = errors;if(!((typeof data19 == "number") && (isFinite(data19)))){const err34 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/1/type",keyword:"type",params:{type: "number"},message:"must be number"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}var _valid5 = _errs70 === errors;if(_valid5 && valid17){valid17 = false;passing5 = [passing5, 1];}else {if(_valid5){valid17 = true;passing5 = 1;}const _errs72 = errors;if(typeof data19 !== "boolean"){const err35 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/2/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}var _valid5 = _errs72 === errors;if(_valid5 && valid17){valid17 = false;passing5 = [passing5, 2];}else {if(_valid5){valid17 = true;passing5 = 2;}const _errs74 = errors;if(errors === _errs74){if(Array.isArray(data19)){if(data19.length > 3){const err36 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/maxItems",keyword:"maxItems",params:{limit: 3},message:"must NOT have more than 3 items"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}else {var valid18 = true;const len3 = data19.length;for(let i3=0; i3 300){const err37 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}else {if(func2(data20) < 0){const err38 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}}else {const err39 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}var valid18 = _errs76 === errors;if(!valid18){break;}}}}else {const err40 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}var _valid5 = _errs74 === errors;if(_valid5 && valid17){valid17 = false;passing5 = [passing5, 3];}else {if(_valid5){valid17 = true;passing5 = 3;}}}}if(!valid17){const err41 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf",keyword:"oneOf",params:{passingSchemas: passing5},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;validate100.errors = vErrors;return false;}else {errors = _errs67;if(vErrors !== null){if(_errs67){vErrors.length = _errs67;}else {vErrors = null;}}}var valid16 = _errs66 === errors;if(!valid16){break;}}}}else {validate100.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid15 = _errs63 === errors;if(!valid15){break;}}}}}else {validate100.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs59 === errors;}else {var valid0 = true;}}}}}}}}}}}}}}}}}}else {validate100.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate100.errors = vErrors;return errors === 0;}validate100.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema163 = {"type":"object","additionalProperties":false,"required":["kind","points"],"properties":{"kind":{"const":"arrow"},"points":{"type":"array","minItems":2,"maxItems":12,"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"number","minimum":-400,"maximum":2400}}},"label":{"type":"string","minLength":0,"maxLength":120},"labelAt":{"type":"number","minimum":0,"maximum":1},"labelDx":{"type":"number","minimum":-400,"maximum":2400},"labelDy":{"type":"number","minimum":-400,"maximum":2400},"dashed":{"type":"boolean"},"both":{"type":"boolean"},"variant":{"enum":["ok","bad"]},"labelAnchor":{"enum":["start","middle","end"]},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}};function validate102(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate102.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.kind === undefined) && (missing0 = "kind")) || ((data.points === undefined) && (missing0 = "points"))){validate102.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema163.properties, key0))){validate102.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.kind !== undefined){const _errs2 = errors;if("arrow" !== data.kind){validate102.errors = [{instancePath:instancePath+"/kind",schemaPath:"#/properties/kind/const",keyword:"const",params:{allowedValue: "arrow"},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.points !== undefined){let data1 = data.points;const _errs3 = errors;if(errors === _errs3){if(Array.isArray(data1)){if(data1.length > 12){validate102.errors = [{instancePath:instancePath+"/points",schemaPath:"#/properties/points/maxItems",keyword:"maxItems",params:{limit: 12},message:"must NOT have more than 12 items"}];return false;}else {if(data1.length < 2){validate102.errors = [{instancePath:instancePath+"/points",schemaPath:"#/properties/points/minItems",keyword:"minItems",params:{limit: 2},message:"must NOT have fewer than 2 items"}];return false;}else {var valid1 = true;const len0 = data1.length;for(let i0=0; i0 2){validate102.errors = [{instancePath:instancePath+"/points/" + i0,schemaPath:"#/properties/points/items/maxItems",keyword:"maxItems",params:{limit: 2},message:"must NOT have more than 2 items"}];return false;}else {if(data2.length < 2){validate102.errors = [{instancePath:instancePath+"/points/" + i0,schemaPath:"#/properties/points/items/minItems",keyword:"minItems",params:{limit: 2},message:"must NOT have fewer than 2 items"}];return false;}else {var valid2 = true;const len1 = data2.length;for(let i1=0; i1 2400 || isNaN(data3)){validate102.errors = [{instancePath:instancePath+"/points/" + i0+"/" + i1,schemaPath:"#/properties/points/items/items/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data3 < -400 || isNaN(data3)){validate102.errors = [{instancePath:instancePath+"/points/" + i0+"/" + i1,schemaPath:"#/properties/points/items/items/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate102.errors = [{instancePath:instancePath+"/points/" + i0+"/" + i1,schemaPath:"#/properties/points/items/items/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid2 = _errs7 === errors;if(!valid2){break;}}}}}else {validate102.errors = [{instancePath:instancePath+"/points/" + i0,schemaPath:"#/properties/points/items/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}}else {validate102.errors = [{instancePath:instancePath+"/points",schemaPath:"#/properties/points/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.label !== undefined){let data4 = data.label;const _errs9 = errors;if(errors === _errs9){if(typeof data4 === "string"){if(func2(data4) > 120){validate102.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/maxLength",keyword:"maxLength",params:{limit: 120},message:"must NOT have more than 120 characters"}];return false;}else {if(func2(data4) < 0){validate102.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate102.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs9 === errors;}else {var valid0 = true;}if(valid0){if(data.labelAt !== undefined){let data5 = data.labelAt;const _errs11 = errors;if(errors === _errs11){if((typeof data5 == "number") && (isFinite(data5))){if(data5 > 1 || isNaN(data5)){validate102.errors = [{instancePath:instancePath+"/labelAt",schemaPath:"#/properties/labelAt/maximum",keyword:"maximum",params:{comparison: "<=", limit: 1},message:"must be <= 1"}];return false;}else {if(data5 < 0 || isNaN(data5)){validate102.errors = [{instancePath:instancePath+"/labelAt",schemaPath:"#/properties/labelAt/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"}];return false;}}}else {validate102.errors = [{instancePath:instancePath+"/labelAt",schemaPath:"#/properties/labelAt/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs11 === errors;}else {var valid0 = true;}if(valid0){if(data.labelDx !== undefined){let data6 = data.labelDx;const _errs13 = errors;if(errors === _errs13){if((typeof data6 == "number") && (isFinite(data6))){if(data6 > 2400 || isNaN(data6)){validate102.errors = [{instancePath:instancePath+"/labelDx",schemaPath:"#/properties/labelDx/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data6 < -400 || isNaN(data6)){validate102.errors = [{instancePath:instancePath+"/labelDx",schemaPath:"#/properties/labelDx/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate102.errors = [{instancePath:instancePath+"/labelDx",schemaPath:"#/properties/labelDx/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs13 === errors;}else {var valid0 = true;}if(valid0){if(data.labelDy !== undefined){let data7 = data.labelDy;const _errs15 = errors;if(errors === _errs15){if((typeof data7 == "number") && (isFinite(data7))){if(data7 > 2400 || isNaN(data7)){validate102.errors = [{instancePath:instancePath+"/labelDy",schemaPath:"#/properties/labelDy/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data7 < -400 || isNaN(data7)){validate102.errors = [{instancePath:instancePath+"/labelDy",schemaPath:"#/properties/labelDy/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate102.errors = [{instancePath:instancePath+"/labelDy",schemaPath:"#/properties/labelDy/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs15 === errors;}else {var valid0 = true;}if(valid0){if(data.dashed !== undefined){const _errs17 = errors;if(typeof data.dashed !== "boolean"){validate102.errors = [{instancePath:instancePath+"/dashed",schemaPath:"#/properties/dashed/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs17 === errors;}else {var valid0 = true;}if(valid0){if(data.both !== undefined){const _errs19 = errors;if(typeof data.both !== "boolean"){validate102.errors = [{instancePath:instancePath+"/both",schemaPath:"#/properties/both/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs19 === errors;}else {var valid0 = true;}if(valid0){if(data.variant !== undefined){let data10 = data.variant;const _errs21 = errors;if(!((data10 === "ok") || (data10 === "bad"))){validate102.errors = [{instancePath:instancePath+"/variant",schemaPath:"#/properties/variant/enum",keyword:"enum",params:{allowedValues: schema163.properties.variant.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs21 === errors;}else {var valid0 = true;}if(valid0){if(data.labelAnchor !== undefined){let data11 = data.labelAnchor;const _errs22 = errors;if(!(((data11 === "start") || (data11 === "middle")) || (data11 === "end"))){validate102.errors = [{instancePath:instancePath+"/labelAnchor",schemaPath:"#/properties/labelAnchor/enum",keyword:"enum",params:{allowedValues: schema163.properties.labelAnchor.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs22 === errors;}else {var valid0 = true;}if(valid0){if(data.active !== undefined){let data12 = data.active;const _errs23 = errors;const _errs24 = errors;let valid3 = false;let passing0 = null;const _errs25 = errors;if(typeof data12 !== "boolean"){const err0 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}var _valid0 = _errs25 === errors;if(_valid0){valid3 = true;passing0 = 0;}const _errs27 = errors;if(errors === _errs27){if(Array.isArray(data12)){if(data12.length > 20){const err1 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}else {var valid4 = true;const len2 = data12.length;for(let i2=0; i2 15 || isNaN(data13)){const err3 = {instancePath:instancePath+"/active/" + i2,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}else {if(data13 < 0 || isNaN(data13)){const err4 = {instancePath:instancePath+"/active/" + i2,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}}}var _valid1 = _errs31 === errors;if(_valid1){valid5 = true;passing1 = 0;}const _errs33 = errors;const _errs34 = errors;if(errors === _errs34){if(typeof data13 === "string"){if(func2(data13) > 64){const err5 = {instancePath:instancePath+"/active/" + i2,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}else {if(!pattern18.test(data13)){const err6 = {instancePath:instancePath+"/active/" + i2,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}}else {const err7 = {instancePath:instancePath+"/active/" + i2,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}var _valid1 = _errs33 === errors;if(_valid1 && valid5){valid5 = false;passing1 = [passing1, 1];}else {if(_valid1){valid5 = true;passing1 = 1;}}if(!valid5){const err8 = {instancePath:instancePath+"/active/" + i2,schemaPath:"#/properties/active/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing1},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}else {errors = _errs30;if(vErrors !== null){if(_errs30){vErrors.length = _errs30;}else {vErrors = null;}}}var valid4 = _errs29 === errors;if(!valid4){break;}}}}else {const err9 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}var _valid0 = _errs27 === errors;if(_valid0 && valid3){valid3 = false;passing0 = [passing0, 1];}else {if(_valid0){valid3 = true;passing0 = 1;}}if(!valid3){const err10 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;validate102.errors = vErrors;return false;}else {errors = _errs24;if(vErrors !== null){if(_errs24){vErrors.length = _errs24;}else {vErrors = null;}}}var valid0 = _errs23 === errors;}else {var valid0 = true;}if(valid0){if(data.hot !== undefined){let data14 = data.hot;const _errs36 = errors;const _errs37 = errors;let valid7 = false;let passing2 = null;const _errs38 = errors;if(typeof data14 !== "boolean"){const err11 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}var _valid2 = _errs38 === errors;if(_valid2){valid7 = true;passing2 = 0;}const _errs40 = errors;if(errors === _errs40){if(Array.isArray(data14)){if(data14.length > 20){const err12 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}else {var valid8 = true;const len3 = data14.length;for(let i3=0; i3 15 || isNaN(data15)){const err14 = {instancePath:instancePath+"/hot/" + i3,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}else {if(data15 < 0 || isNaN(data15)){const err15 = {instancePath:instancePath+"/hot/" + i3,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}}var _valid3 = _errs44 === errors;if(_valid3){valid9 = true;passing3 = 0;}const _errs46 = errors;const _errs47 = errors;if(errors === _errs47){if(typeof data15 === "string"){if(func2(data15) > 64){const err16 = {instancePath:instancePath+"/hot/" + i3,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}else {if(!pattern18.test(data15)){const err17 = {instancePath:instancePath+"/hot/" + i3,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}else {const err18 = {instancePath:instancePath+"/hot/" + i3,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}var _valid3 = _errs46 === errors;if(_valid3 && valid9){valid9 = false;passing3 = [passing3, 1];}else {if(_valid3){valid9 = true;passing3 = 1;}}if(!valid9){const err19 = {instancePath:instancePath+"/hot/" + i3,schemaPath:"#/properties/hot/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing3},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}else {errors = _errs43;if(vErrors !== null){if(_errs43){vErrors.length = _errs43;}else {vErrors = null;}}}var valid8 = _errs42 === errors;if(!valid8){break;}}}}else {const err20 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}var _valid2 = _errs40 === errors;if(_valid2 && valid7){valid7 = false;passing2 = [passing2, 1];}else {if(_valid2){valid7 = true;passing2 = 1;}}if(!valid7){const err21 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf",keyword:"oneOf",params:{passingSchemas: passing2},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;validate102.errors = vErrors;return false;}else {errors = _errs37;if(vErrors !== null){if(_errs37){vErrors.length = _errs37;}else {vErrors = null;}}}var valid0 = _errs36 === errors;}else {var valid0 = true;}if(valid0){if(data.dim !== undefined){const _errs49 = errors;if(typeof data.dim !== "boolean"){validate102.errors = [{instancePath:instancePath+"/dim",schemaPath:"#/properties/dim/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs49 === errors;}else {var valid0 = true;}if(valid0){if(data.visible !== undefined){let data17 = data.visible;const _errs51 = errors;if(errors === _errs51){if(Array.isArray(data17)){if(data17.length > 20){validate102.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid11 = true;const len4 = data17.length;for(let i4=0; i4 15 || isNaN(data18)){const err23 = {instancePath:instancePath+"/visible/" + i4,schemaPath:"#/properties/visible/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}else {if(data18 < 0 || isNaN(data18)){const err24 = {instancePath:instancePath+"/visible/" + i4,schemaPath:"#/properties/visible/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}}}var _valid4 = _errs55 === errors;if(_valid4){valid12 = true;passing4 = 0;}const _errs57 = errors;const _errs58 = errors;if(errors === _errs58){if(typeof data18 === "string"){if(func2(data18) > 64){const err25 = {instancePath:instancePath+"/visible/" + i4,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}else {if(!pattern18.test(data18)){const err26 = {instancePath:instancePath+"/visible/" + i4,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}}else {const err27 = {instancePath:instancePath+"/visible/" + i4,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}var _valid4 = _errs57 === errors;if(_valid4 && valid12){valid12 = false;passing4 = [passing4, 1];}else {if(_valid4){valid12 = true;passing4 = 1;}}if(!valid12){const err28 = {instancePath:instancePath+"/visible/" + i4,schemaPath:"#/properties/visible/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing4},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;validate102.errors = vErrors;return false;}else {errors = _errs54;if(vErrors !== null){if(_errs54){vErrors.length = _errs54;}else {vErrors = null;}}}var valid11 = _errs53 === errors;if(!valid11){break;}}}}else {validate102.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs51 === errors;}else {var valid0 = true;}if(valid0){if(data.overrides !== undefined){let data19 = data.overrides;const _errs60 = errors;if(errors === _errs60){if(data19 && typeof data19 == "object" && !Array.isArray(data19)){if(Object.keys(data19).length > 6){validate102.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/maxProperties",keyword:"maxProperties",params:{limit: 6},message:"must NOT have more than 6 properties"}];return false;}else {for(const key1 in data19){const _errs62 = errors;if(!(((((((key1 === "title") || (key1 === "sub")) || (key1 === "label")) || (key1 === "text")) || (key1 === "n")) || (key1 === "dashed")) || (key1 === "muted"))){const err29 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames/enum",keyword:"enum",params:{allowedValues: schema163.properties.overrides.propertyNames.enum},message:"must be equal to one of the allowed values",propertyName:key1};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}var valid14 = _errs62 === errors;if(!valid14){const err30 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames",keyword:"propertyNames",params:{propertyName: key1},message:"property name must be valid"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;validate102.errors = vErrors;return false;break;}}if(valid14){for(const key2 in data19){let data20 = data19[key2];const _errs64 = errors;if(errors === _errs64){if(data20 && typeof data20 == "object" && !Array.isArray(data20)){if(Object.keys(data20).length > 20){validate102.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/maxProperties",keyword:"maxProperties",params:{limit: 20},message:"must NOT have more than 20 properties"}];return false;}else {for(const key3 in data20){let data21 = data20[key3];const _errs67 = errors;const _errs68 = errors;let valid17 = false;let passing5 = null;const _errs69 = errors;if(errors === _errs69){if(typeof data21 === "string"){if(func2(data21) > 300){const err31 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}else {if(func2(data21) < 0){const err32 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}}else {const err33 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}var _valid5 = _errs69 === errors;if(_valid5){valid17 = true;passing5 = 0;}const _errs71 = errors;if(!((typeof data21 == "number") && (isFinite(data21)))){const err34 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/1/type",keyword:"type",params:{type: "number"},message:"must be number"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}var _valid5 = _errs71 === errors;if(_valid5 && valid17){valid17 = false;passing5 = [passing5, 1];}else {if(_valid5){valid17 = true;passing5 = 1;}const _errs73 = errors;if(typeof data21 !== "boolean"){const err35 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/2/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}var _valid5 = _errs73 === errors;if(_valid5 && valid17){valid17 = false;passing5 = [passing5, 2];}else {if(_valid5){valid17 = true;passing5 = 2;}const _errs75 = errors;if(errors === _errs75){if(Array.isArray(data21)){if(data21.length > 3){const err36 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/maxItems",keyword:"maxItems",params:{limit: 3},message:"must NOT have more than 3 items"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}else {var valid18 = true;const len5 = data21.length;for(let i5=0; i5 300){const err37 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i5,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}else {if(func2(data22) < 0){const err38 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i5,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}}else {const err39 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i5,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}var valid18 = _errs77 === errors;if(!valid18){break;}}}}else {const err40 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}var _valid5 = _errs75 === errors;if(_valid5 && valid17){valid17 = false;passing5 = [passing5, 3];}else {if(_valid5){valid17 = true;passing5 = 3;}}}}if(!valid17){const err41 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf",keyword:"oneOf",params:{passingSchemas: passing5},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;validate102.errors = vErrors;return false;}else {errors = _errs68;if(vErrors !== null){if(_errs68){vErrors.length = _errs68;}else {vErrors = null;}}}var valid16 = _errs67 === errors;if(!valid16){break;}}}}else {validate102.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid15 = _errs64 === errors;if(!valid15){break;}}}}}else {validate102.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs60 === errors;}else {var valid0 = true;}}}}}}}}}}}}}}}}}}else {validate102.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate102.errors = vErrors;return errors === 0;}validate102.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema167 = {"type":"object","additionalProperties":false,"required":["kind","x","y","text"],"properties":{"kind":{"const":"label"},"x":{"type":"number","minimum":-400,"maximum":2400},"y":{"type":"number","minimum":-400,"maximum":2400},"text":{"type":"string","minLength":0,"maxLength":200},"anchor":{"enum":["start","middle","end"]},"size":{"type":"number","minimum":8,"maximum":32},"muted":{"type":"boolean"},"weight":{"type":"number","minimum":100,"maximum":900},"mono":{"type":"boolean"},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}};function validate104(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate104.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((((data.kind === undefined) && (missing0 = "kind")) || ((data.x === undefined) && (missing0 = "x"))) || ((data.y === undefined) && (missing0 = "y"))) || ((data.text === undefined) && (missing0 = "text"))){validate104.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema167.properties, key0))){validate104.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.kind !== undefined){const _errs2 = errors;if("label" !== data.kind){validate104.errors = [{instancePath:instancePath+"/kind",schemaPath:"#/properties/kind/const",keyword:"const",params:{allowedValue: "label"},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.x !== undefined){let data1 = data.x;const _errs3 = errors;if(errors === _errs3){if((typeof data1 == "number") && (isFinite(data1))){if(data1 > 2400 || isNaN(data1)){validate104.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data1 < -400 || isNaN(data1)){validate104.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate104.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.y !== undefined){let data2 = data.y;const _errs5 = errors;if(errors === _errs5){if((typeof data2 == "number") && (isFinite(data2))){if(data2 > 2400 || isNaN(data2)){validate104.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data2 < -400 || isNaN(data2)){validate104.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate104.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.text !== undefined){let data3 = data.text;const _errs7 = errors;if(errors === _errs7){if(typeof data3 === "string"){if(func2(data3) > 200){validate104.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}else {if(func2(data3) < 0){validate104.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate104.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.anchor !== undefined){let data4 = data.anchor;const _errs9 = errors;if(!(((data4 === "start") || (data4 === "middle")) || (data4 === "end"))){validate104.errors = [{instancePath:instancePath+"/anchor",schemaPath:"#/properties/anchor/enum",keyword:"enum",params:{allowedValues: schema167.properties.anchor.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs9 === errors;}else {var valid0 = true;}if(valid0){if(data.size !== undefined){let data5 = data.size;const _errs10 = errors;if(errors === _errs10){if((typeof data5 == "number") && (isFinite(data5))){if(data5 > 32 || isNaN(data5)){validate104.errors = [{instancePath:instancePath+"/size",schemaPath:"#/properties/size/maximum",keyword:"maximum",params:{comparison: "<=", limit: 32},message:"must be <= 32"}];return false;}else {if(data5 < 8 || isNaN(data5)){validate104.errors = [{instancePath:instancePath+"/size",schemaPath:"#/properties/size/minimum",keyword:"minimum",params:{comparison: ">=", limit: 8},message:"must be >= 8"}];return false;}}}else {validate104.errors = [{instancePath:instancePath+"/size",schemaPath:"#/properties/size/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs10 === errors;}else {var valid0 = true;}if(valid0){if(data.muted !== undefined){const _errs12 = errors;if(typeof data.muted !== "boolean"){validate104.errors = [{instancePath:instancePath+"/muted",schemaPath:"#/properties/muted/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs12 === errors;}else {var valid0 = true;}if(valid0){if(data.weight !== undefined){let data7 = data.weight;const _errs14 = errors;if(errors === _errs14){if((typeof data7 == "number") && (isFinite(data7))){if(data7 > 900 || isNaN(data7)){validate104.errors = [{instancePath:instancePath+"/weight",schemaPath:"#/properties/weight/maximum",keyword:"maximum",params:{comparison: "<=", limit: 900},message:"must be <= 900"}];return false;}else {if(data7 < 100 || isNaN(data7)){validate104.errors = [{instancePath:instancePath+"/weight",schemaPath:"#/properties/weight/minimum",keyword:"minimum",params:{comparison: ">=", limit: 100},message:"must be >= 100"}];return false;}}}else {validate104.errors = [{instancePath:instancePath+"/weight",schemaPath:"#/properties/weight/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs14 === errors;}else {var valid0 = true;}if(valid0){if(data.mono !== undefined){const _errs16 = errors;if(typeof data.mono !== "boolean"){validate104.errors = [{instancePath:instancePath+"/mono",schemaPath:"#/properties/mono/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs16 === errors;}else {var valid0 = true;}if(valid0){if(data.active !== undefined){let data9 = data.active;const _errs18 = errors;const _errs19 = errors;let valid1 = false;let passing0 = null;const _errs20 = errors;if(typeof data9 !== "boolean"){const err0 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}var _valid0 = _errs20 === errors;if(_valid0){valid1 = true;passing0 = 0;}const _errs22 = errors;if(errors === _errs22){if(Array.isArray(data9)){if(data9.length > 20){const err1 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}else {var valid2 = true;const len0 = data9.length;for(let i0=0; i0 15 || isNaN(data10)){const err3 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}else {if(data10 < 0 || isNaN(data10)){const err4 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}}}var _valid1 = _errs26 === errors;if(_valid1){valid3 = true;passing1 = 0;}const _errs28 = errors;const _errs29 = errors;if(errors === _errs29){if(typeof data10 === "string"){if(func2(data10) > 64){const err5 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}else {if(!pattern18.test(data10)){const err6 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}}else {const err7 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}var _valid1 = _errs28 === errors;if(_valid1 && valid3){valid3 = false;passing1 = [passing1, 1];}else {if(_valid1){valid3 = true;passing1 = 1;}}if(!valid3){const err8 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing1},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}else {errors = _errs25;if(vErrors !== null){if(_errs25){vErrors.length = _errs25;}else {vErrors = null;}}}var valid2 = _errs24 === errors;if(!valid2){break;}}}}else {const err9 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}var _valid0 = _errs22 === errors;if(_valid0 && valid1){valid1 = false;passing0 = [passing0, 1];}else {if(_valid0){valid1 = true;passing0 = 1;}}if(!valid1){const err10 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;validate104.errors = vErrors;return false;}else {errors = _errs19;if(vErrors !== null){if(_errs19){vErrors.length = _errs19;}else {vErrors = null;}}}var valid0 = _errs18 === errors;}else {var valid0 = true;}if(valid0){if(data.hot !== undefined){let data11 = data.hot;const _errs31 = errors;const _errs32 = errors;let valid5 = false;let passing2 = null;const _errs33 = errors;if(typeof data11 !== "boolean"){const err11 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}var _valid2 = _errs33 === errors;if(_valid2){valid5 = true;passing2 = 0;}const _errs35 = errors;if(errors === _errs35){if(Array.isArray(data11)){if(data11.length > 20){const err12 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}else {var valid6 = true;const len1 = data11.length;for(let i1=0; i1 15 || isNaN(data12)){const err14 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}else {if(data12 < 0 || isNaN(data12)){const err15 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}}var _valid3 = _errs39 === errors;if(_valid3){valid7 = true;passing3 = 0;}const _errs41 = errors;const _errs42 = errors;if(errors === _errs42){if(typeof data12 === "string"){if(func2(data12) > 64){const err16 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}else {if(!pattern18.test(data12)){const err17 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}else {const err18 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}var _valid3 = _errs41 === errors;if(_valid3 && valid7){valid7 = false;passing3 = [passing3, 1];}else {if(_valid3){valid7 = true;passing3 = 1;}}if(!valid7){const err19 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing3},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}else {errors = _errs38;if(vErrors !== null){if(_errs38){vErrors.length = _errs38;}else {vErrors = null;}}}var valid6 = _errs37 === errors;if(!valid6){break;}}}}else {const err20 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}var _valid2 = _errs35 === errors;if(_valid2 && valid5){valid5 = false;passing2 = [passing2, 1];}else {if(_valid2){valid5 = true;passing2 = 1;}}if(!valid5){const err21 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf",keyword:"oneOf",params:{passingSchemas: passing2},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;validate104.errors = vErrors;return false;}else {errors = _errs32;if(vErrors !== null){if(_errs32){vErrors.length = _errs32;}else {vErrors = null;}}}var valid0 = _errs31 === errors;}else {var valid0 = true;}if(valid0){if(data.dim !== undefined){const _errs44 = errors;if(typeof data.dim !== "boolean"){validate104.errors = [{instancePath:instancePath+"/dim",schemaPath:"#/properties/dim/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs44 === errors;}else {var valid0 = true;}if(valid0){if(data.visible !== undefined){let data14 = data.visible;const _errs46 = errors;if(errors === _errs46){if(Array.isArray(data14)){if(data14.length > 20){validate104.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid9 = true;const len2 = data14.length;for(let i2=0; i2 15 || isNaN(data15)){const err23 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}else {if(data15 < 0 || isNaN(data15)){const err24 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}}}var _valid4 = _errs50 === errors;if(_valid4){valid10 = true;passing4 = 0;}const _errs52 = errors;const _errs53 = errors;if(errors === _errs53){if(typeof data15 === "string"){if(func2(data15) > 64){const err25 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}else {if(!pattern18.test(data15)){const err26 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}}else {const err27 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}var _valid4 = _errs52 === errors;if(_valid4 && valid10){valid10 = false;passing4 = [passing4, 1];}else {if(_valid4){valid10 = true;passing4 = 1;}}if(!valid10){const err28 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing4},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;validate104.errors = vErrors;return false;}else {errors = _errs49;if(vErrors !== null){if(_errs49){vErrors.length = _errs49;}else {vErrors = null;}}}var valid9 = _errs48 === errors;if(!valid9){break;}}}}else {validate104.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs46 === errors;}else {var valid0 = true;}if(valid0){if(data.overrides !== undefined){let data16 = data.overrides;const _errs55 = errors;if(errors === _errs55){if(data16 && typeof data16 == "object" && !Array.isArray(data16)){if(Object.keys(data16).length > 6){validate104.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/maxProperties",keyword:"maxProperties",params:{limit: 6},message:"must NOT have more than 6 properties"}];return false;}else {for(const key1 in data16){const _errs57 = errors;if(!(((((((key1 === "title") || (key1 === "sub")) || (key1 === "label")) || (key1 === "text")) || (key1 === "n")) || (key1 === "dashed")) || (key1 === "muted"))){const err29 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames/enum",keyword:"enum",params:{allowedValues: schema167.properties.overrides.propertyNames.enum},message:"must be equal to one of the allowed values",propertyName:key1};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}var valid12 = _errs57 === errors;if(!valid12){const err30 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames",keyword:"propertyNames",params:{propertyName: key1},message:"property name must be valid"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;validate104.errors = vErrors;return false;break;}}if(valid12){for(const key2 in data16){let data17 = data16[key2];const _errs59 = errors;if(errors === _errs59){if(data17 && typeof data17 == "object" && !Array.isArray(data17)){if(Object.keys(data17).length > 20){validate104.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/maxProperties",keyword:"maxProperties",params:{limit: 20},message:"must NOT have more than 20 properties"}];return false;}else {for(const key3 in data17){let data18 = data17[key3];const _errs62 = errors;const _errs63 = errors;let valid15 = false;let passing5 = null;const _errs64 = errors;if(errors === _errs64){if(typeof data18 === "string"){if(func2(data18) > 300){const err31 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}else {if(func2(data18) < 0){const err32 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}}else {const err33 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}var _valid5 = _errs64 === errors;if(_valid5){valid15 = true;passing5 = 0;}const _errs66 = errors;if(!((typeof data18 == "number") && (isFinite(data18)))){const err34 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/1/type",keyword:"type",params:{type: "number"},message:"must be number"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}var _valid5 = _errs66 === errors;if(_valid5 && valid15){valid15 = false;passing5 = [passing5, 1];}else {if(_valid5){valid15 = true;passing5 = 1;}const _errs68 = errors;if(typeof data18 !== "boolean"){const err35 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/2/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}var _valid5 = _errs68 === errors;if(_valid5 && valid15){valid15 = false;passing5 = [passing5, 2];}else {if(_valid5){valid15 = true;passing5 = 2;}const _errs70 = errors;if(errors === _errs70){if(Array.isArray(data18)){if(data18.length > 3){const err36 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/maxItems",keyword:"maxItems",params:{limit: 3},message:"must NOT have more than 3 items"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}else {var valid16 = true;const len3 = data18.length;for(let i3=0; i3 300){const err37 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}else {if(func2(data19) < 0){const err38 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}}else {const err39 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}var valid16 = _errs72 === errors;if(!valid16){break;}}}}else {const err40 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}var _valid5 = _errs70 === errors;if(_valid5 && valid15){valid15 = false;passing5 = [passing5, 3];}else {if(_valid5){valid15 = true;passing5 = 3;}}}}if(!valid15){const err41 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf",keyword:"oneOf",params:{passingSchemas: passing5},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;validate104.errors = vErrors;return false;}else {errors = _errs63;if(vErrors !== null){if(_errs63){vErrors.length = _errs63;}else {vErrors = null;}}}var valid14 = _errs62 === errors;if(!valid14){break;}}}}else {validate104.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid13 = _errs59 === errors;if(!valid13){break;}}}}}else {validate104.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs55 === errors;}else {var valid0 = true;}}}}}}}}}}}}}}}}}else {validate104.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate104.errors = vErrors;return errors === 0;}validate104.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema171 = {"type":"object","additionalProperties":false,"required":["kind","x","y"],"properties":{"kind":{"const":"badge"},"x":{"type":"number","minimum":-400,"maximum":2400},"y":{"type":"number","minimum":-400,"maximum":2400},"n":{"type":"integer","minimum":0,"maximum":99},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}};function validate106(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate106.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((data.kind === undefined) && (missing0 = "kind")) || ((data.x === undefined) && (missing0 = "x"))) || ((data.y === undefined) && (missing0 = "y"))){validate106.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema171.properties, key0))){validate106.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.kind !== undefined){const _errs2 = errors;if("badge" !== data.kind){validate106.errors = [{instancePath:instancePath+"/kind",schemaPath:"#/properties/kind/const",keyword:"const",params:{allowedValue: "badge"},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.x !== undefined){let data1 = data.x;const _errs3 = errors;if(errors === _errs3){if((typeof data1 == "number") && (isFinite(data1))){if(data1 > 2400 || isNaN(data1)){validate106.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data1 < -400 || isNaN(data1)){validate106.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate106.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.y !== undefined){let data2 = data.y;const _errs5 = errors;if(errors === _errs5){if((typeof data2 == "number") && (isFinite(data2))){if(data2 > 2400 || isNaN(data2)){validate106.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data2 < -400 || isNaN(data2)){validate106.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate106.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.n !== undefined){let data3 = data.n;const _errs7 = errors;if(!(((typeof data3 == "number") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))){validate106.errors = [{instancePath:instancePath+"/n",schemaPath:"#/properties/n/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs7){if((typeof data3 == "number") && (isFinite(data3))){if(data3 > 99 || isNaN(data3)){validate106.errors = [{instancePath:instancePath+"/n",schemaPath:"#/properties/n/maximum",keyword:"maximum",params:{comparison: "<=", limit: 99},message:"must be <= 99"}];return false;}else {if(data3 < 0 || isNaN(data3)){validate106.errors = [{instancePath:instancePath+"/n",schemaPath:"#/properties/n/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"}];return false;}}}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.active !== undefined){let data4 = data.active;const _errs9 = errors;const _errs10 = errors;let valid1 = false;let passing0 = null;const _errs11 = errors;if(typeof data4 !== "boolean"){const err0 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}var _valid0 = _errs11 === errors;if(_valid0){valid1 = true;passing0 = 0;}const _errs13 = errors;if(errors === _errs13){if(Array.isArray(data4)){if(data4.length > 20){const err1 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}else {var valid2 = true;const len0 = data4.length;for(let i0=0; i0 15 || isNaN(data5)){const err3 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}else {if(data5 < 0 || isNaN(data5)){const err4 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}}}var _valid1 = _errs17 === errors;if(_valid1){valid3 = true;passing1 = 0;}const _errs19 = errors;const _errs20 = errors;if(errors === _errs20){if(typeof data5 === "string"){if(func2(data5) > 64){const err5 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}else {if(!pattern18.test(data5)){const err6 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}}else {const err7 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}var _valid1 = _errs19 === errors;if(_valid1 && valid3){valid3 = false;passing1 = [passing1, 1];}else {if(_valid1){valid3 = true;passing1 = 1;}}if(!valid3){const err8 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing1},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}else {errors = _errs16;if(vErrors !== null){if(_errs16){vErrors.length = _errs16;}else {vErrors = null;}}}var valid2 = _errs15 === errors;if(!valid2){break;}}}}else {const err9 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}var _valid0 = _errs13 === errors;if(_valid0 && valid1){valid1 = false;passing0 = [passing0, 1];}else {if(_valid0){valid1 = true;passing0 = 1;}}if(!valid1){const err10 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;validate106.errors = vErrors;return false;}else {errors = _errs10;if(vErrors !== null){if(_errs10){vErrors.length = _errs10;}else {vErrors = null;}}}var valid0 = _errs9 === errors;}else {var valid0 = true;}if(valid0){if(data.hot !== undefined){let data6 = data.hot;const _errs22 = errors;const _errs23 = errors;let valid5 = false;let passing2 = null;const _errs24 = errors;if(typeof data6 !== "boolean"){const err11 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}var _valid2 = _errs24 === errors;if(_valid2){valid5 = true;passing2 = 0;}const _errs26 = errors;if(errors === _errs26){if(Array.isArray(data6)){if(data6.length > 20){const err12 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}else {var valid6 = true;const len1 = data6.length;for(let i1=0; i1 15 || isNaN(data7)){const err14 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}else {if(data7 < 0 || isNaN(data7)){const err15 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}}var _valid3 = _errs30 === errors;if(_valid3){valid7 = true;passing3 = 0;}const _errs32 = errors;const _errs33 = errors;if(errors === _errs33){if(typeof data7 === "string"){if(func2(data7) > 64){const err16 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}else {if(!pattern18.test(data7)){const err17 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}else {const err18 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}var _valid3 = _errs32 === errors;if(_valid3 && valid7){valid7 = false;passing3 = [passing3, 1];}else {if(_valid3){valid7 = true;passing3 = 1;}}if(!valid7){const err19 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing3},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}else {errors = _errs29;if(vErrors !== null){if(_errs29){vErrors.length = _errs29;}else {vErrors = null;}}}var valid6 = _errs28 === errors;if(!valid6){break;}}}}else {const err20 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}var _valid2 = _errs26 === errors;if(_valid2 && valid5){valid5 = false;passing2 = [passing2, 1];}else {if(_valid2){valid5 = true;passing2 = 1;}}if(!valid5){const err21 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf",keyword:"oneOf",params:{passingSchemas: passing2},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;validate106.errors = vErrors;return false;}else {errors = _errs23;if(vErrors !== null){if(_errs23){vErrors.length = _errs23;}else {vErrors = null;}}}var valid0 = _errs22 === errors;}else {var valid0 = true;}if(valid0){if(data.dim !== undefined){const _errs35 = errors;if(typeof data.dim !== "boolean"){validate106.errors = [{instancePath:instancePath+"/dim",schemaPath:"#/properties/dim/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs35 === errors;}else {var valid0 = true;}if(valid0){if(data.visible !== undefined){let data9 = data.visible;const _errs37 = errors;if(errors === _errs37){if(Array.isArray(data9)){if(data9.length > 20){validate106.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid9 = true;const len2 = data9.length;for(let i2=0; i2 15 || isNaN(data10)){const err23 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}else {if(data10 < 0 || isNaN(data10)){const err24 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}}}var _valid4 = _errs41 === errors;if(_valid4){valid10 = true;passing4 = 0;}const _errs43 = errors;const _errs44 = errors;if(errors === _errs44){if(typeof data10 === "string"){if(func2(data10) > 64){const err25 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}else {if(!pattern18.test(data10)){const err26 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}}else {const err27 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}var _valid4 = _errs43 === errors;if(_valid4 && valid10){valid10 = false;passing4 = [passing4, 1];}else {if(_valid4){valid10 = true;passing4 = 1;}}if(!valid10){const err28 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing4},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;validate106.errors = vErrors;return false;}else {errors = _errs40;if(vErrors !== null){if(_errs40){vErrors.length = _errs40;}else {vErrors = null;}}}var valid9 = _errs39 === errors;if(!valid9){break;}}}}else {validate106.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs37 === errors;}else {var valid0 = true;}if(valid0){if(data.overrides !== undefined){let data11 = data.overrides;const _errs46 = errors;if(errors === _errs46){if(data11 && typeof data11 == "object" && !Array.isArray(data11)){if(Object.keys(data11).length > 6){validate106.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/maxProperties",keyword:"maxProperties",params:{limit: 6},message:"must NOT have more than 6 properties"}];return false;}else {for(const key1 in data11){const _errs48 = errors;if(!(((((((key1 === "title") || (key1 === "sub")) || (key1 === "label")) || (key1 === "text")) || (key1 === "n")) || (key1 === "dashed")) || (key1 === "muted"))){const err29 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames/enum",keyword:"enum",params:{allowedValues: schema171.properties.overrides.propertyNames.enum},message:"must be equal to one of the allowed values",propertyName:key1};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}var valid12 = _errs48 === errors;if(!valid12){const err30 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames",keyword:"propertyNames",params:{propertyName: key1},message:"property name must be valid"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;validate106.errors = vErrors;return false;break;}}if(valid12){for(const key2 in data11){let data12 = data11[key2];const _errs50 = errors;if(errors === _errs50){if(data12 && typeof data12 == "object" && !Array.isArray(data12)){if(Object.keys(data12).length > 20){validate106.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/maxProperties",keyword:"maxProperties",params:{limit: 20},message:"must NOT have more than 20 properties"}];return false;}else {for(const key3 in data12){let data13 = data12[key3];const _errs53 = errors;const _errs54 = errors;let valid15 = false;let passing5 = null;const _errs55 = errors;if(errors === _errs55){if(typeof data13 === "string"){if(func2(data13) > 300){const err31 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}else {if(func2(data13) < 0){const err32 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}}else {const err33 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}var _valid5 = _errs55 === errors;if(_valid5){valid15 = true;passing5 = 0;}const _errs57 = errors;if(!((typeof data13 == "number") && (isFinite(data13)))){const err34 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/1/type",keyword:"type",params:{type: "number"},message:"must be number"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}var _valid5 = _errs57 === errors;if(_valid5 && valid15){valid15 = false;passing5 = [passing5, 1];}else {if(_valid5){valid15 = true;passing5 = 1;}const _errs59 = errors;if(typeof data13 !== "boolean"){const err35 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/2/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}var _valid5 = _errs59 === errors;if(_valid5 && valid15){valid15 = false;passing5 = [passing5, 2];}else {if(_valid5){valid15 = true;passing5 = 2;}const _errs61 = errors;if(errors === _errs61){if(Array.isArray(data13)){if(data13.length > 3){const err36 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/maxItems",keyword:"maxItems",params:{limit: 3},message:"must NOT have more than 3 items"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}else {var valid16 = true;const len3 = data13.length;for(let i3=0; i3 300){const err37 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}else {if(func2(data14) < 0){const err38 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}}else {const err39 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}var valid16 = _errs63 === errors;if(!valid16){break;}}}}else {const err40 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}var _valid5 = _errs61 === errors;if(_valid5 && valid15){valid15 = false;passing5 = [passing5, 3];}else {if(_valid5){valid15 = true;passing5 = 3;}}}}if(!valid15){const err41 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf",keyword:"oneOf",params:{passingSchemas: passing5},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;validate106.errors = vErrors;return false;}else {errors = _errs54;if(vErrors !== null){if(_errs54){vErrors.length = _errs54;}else {vErrors = null;}}}var valid14 = _errs53 === errors;if(!valid14){break;}}}}else {validate106.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid13 = _errs50 === errors;if(!valid13){break;}}}}}else {validate106.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs46 === errors;}else {var valid0 = true;}}}}}}}}}}}}else {validate106.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate106.errors = vErrors;return errors === 0;}validate106.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate97(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/diagram.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate97.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((data.title === undefined) && (missing0 = "title")) || ((data.height === undefined) && (missing0 = "height"))) || ((data.elements === undefined) && (missing0 = "elements"))){validate97.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema149.properties, key0))){validate97.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.title !== undefined){let data0 = data.title;const _errs2 = errors;if(errors === _errs2){if(typeof data0 === "string"){if(func2(data0) > 200){validate97.errors = [{instancePath:instancePath+"/title",schemaPath:"#/properties/title/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}else {if(func2(data0) < 1){validate97.errors = [{instancePath:instancePath+"/title",schemaPath:"#/properties/title/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate97.errors = [{instancePath:instancePath+"/title",schemaPath:"#/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.caption !== undefined){let data1 = data.caption;const _errs4 = errors;if(errors === _errs4){if(typeof data1 === "string"){if(func2(data1) > 600){validate97.errors = [{instancePath:instancePath+"/caption",schemaPath:"#/properties/caption/maxLength",keyword:"maxLength",params:{limit: 600},message:"must NOT have more than 600 characters"}];return false;}else {if(func2(data1) < 0){validate97.errors = [{instancePath:instancePath+"/caption",schemaPath:"#/properties/caption/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate97.errors = [{instancePath:instancePath+"/caption",schemaPath:"#/properties/caption/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.height !== undefined){let data2 = data.height;const _errs6 = errors;if(!(((typeof data2 == "number") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))){validate97.errors = [{instancePath:instancePath+"/height",schemaPath:"#/properties/height/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs6){if((typeof data2 == "number") && (isFinite(data2))){if(data2 > 1200 || isNaN(data2)){validate97.errors = [{instancePath:instancePath+"/height",schemaPath:"#/properties/height/maximum",keyword:"maximum",params:{comparison: "<=", limit: 1200},message:"must be <= 1200"}];return false;}else {if(data2 < 40 || isNaN(data2)){validate97.errors = [{instancePath:instancePath+"/height",schemaPath:"#/properties/height/minimum",keyword:"minimum",params:{comparison: ">=", limit: 40},message:"must be >= 40"}];return false;}}}}var valid0 = _errs6 === errors;}else {var valid0 = true;}if(valid0){if(data.width !== undefined){let data3 = data.width;const _errs8 = errors;if(!(((typeof data3 == "number") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))){validate97.errors = [{instancePath:instancePath+"/width",schemaPath:"#/properties/width/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs8){if((typeof data3 == "number") && (isFinite(data3))){if(data3 > 1600 || isNaN(data3)){validate97.errors = [{instancePath:instancePath+"/width",schemaPath:"#/properties/width/maximum",keyword:"maximum",params:{comparison: "<=", limit: 1600},message:"must be <= 1600"}];return false;}else {if(data3 < 200 || isNaN(data3)){validate97.errors = [{instancePath:instancePath+"/width",schemaPath:"#/properties/width/minimum",keyword:"minimum",params:{comparison: ">=", limit: 200},message:"must be >= 200"}];return false;}}}}var valid0 = _errs8 === errors;}else {var valid0 = true;}if(valid0){if(data.expandable !== undefined){const _errs10 = errors;if(typeof data.expandable !== "boolean"){validate97.errors = [{instancePath:instancePath+"/expandable",schemaPath:"#/properties/expandable/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs10 === errors;}else {var valid0 = true;}if(valid0){if(data.mode !== undefined){let data5 = data.mode;const _errs12 = errors;if(!(((data5 === "static") || (data5 === "select")) || (data5 === "steps"))){validate97.errors = [{instancePath:instancePath+"/mode",schemaPath:"#/properties/mode/enum",keyword:"enum",params:{allowedValues: schema149.properties.mode.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs12 === errors;}else {var valid0 = true;}if(valid0){if(data.initial !== undefined){let data6 = data.initial;const _errs13 = errors;const _errs14 = errors;if(errors === _errs14){if(typeof data6 === "string"){if(func2(data6) > 64){validate97.errors = [{instancePath:instancePath+"/initial",schemaPath:"#/$defs/viewKey/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data6)){validate97.errors = [{instancePath:instancePath+"/initial",schemaPath:"#/$defs/viewKey/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate97.errors = [{instancePath:instancePath+"/initial",schemaPath:"#/$defs/viewKey/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs13 === errors;}else {var valid0 = true;}if(valid0){if(data.hint !== undefined){let data7 = data.hint;const _errs16 = errors;if(errors === _errs16){if(typeof data7 === "string"){if(func2(data7) > 300){validate97.errors = [{instancePath:instancePath+"/hint",schemaPath:"#/properties/hint/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}else {if(func2(data7) < 0){validate97.errors = [{instancePath:instancePath+"/hint",schemaPath:"#/properties/hint/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate97.errors = [{instancePath:instancePath+"/hint",schemaPath:"#/properties/hint/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs16 === errors;}else {var valid0 = true;}if(valid0){if(data.elements !== undefined){let data8 = data.elements;const _errs18 = errors;if(errors === _errs18){if(Array.isArray(data8)){if(data8.length > 120){validate97.errors = [{instancePath:instancePath+"/elements",schemaPath:"#/properties/elements/maxItems",keyword:"maxItems",params:{limit: 120},message:"must NOT have more than 120 items"}];return false;}else {if(data8.length < 1){validate97.errors = [{instancePath:instancePath+"/elements",schemaPath:"#/properties/elements/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid2 = true;const len0 = data8.length;for(let i0=0; i0 30){validate97.errors = [{instancePath:instancePath+"/info",schemaPath:"#/properties/info/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data16){const _errs50 = errors;const _errs51 = errors;if(errors === _errs51){if(typeof key1 === "string"){if(func2(key1) > 64){const err15 = {instancePath:instancePath+"/info",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters",propertyName:key1};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}else {if(!pattern18.test(key1)){const err16 = {instancePath:instancePath+"/info",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\"",propertyName:key1};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}}else {const err17 = {instancePath:instancePath+"/info",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string",propertyName:key1};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}var valid15 = _errs50 === errors;if(!valid15){const err18 = {instancePath:instancePath+"/info",schemaPath:"#/properties/info/propertyNames",keyword:"propertyNames",params:{propertyName: key1},message:"property name must be valid"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;validate97.errors = vErrors;return false;break;}}if(valid15){for(const key2 in data16){let data17 = data16[key2];const _errs54 = errors;if(errors === _errs54){if(data17 && typeof data17 == "object" && !Array.isArray(data17)){let missing7;if(((data17.title === undefined) && (missing7 = "title")) || ((data17.text === undefined) && (missing7 = "text"))){validate97.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/info/additionalProperties/required",keyword:"required",params:{missingProperty: missing7},message:"must have required property '"+missing7+"'"}];return false;}else {const _errs56 = errors;for(const key3 in data17){if(!((((key3 === "title") || (key3 === "text")) || (key3 === "tone")) || (key3 === "code"))){validate97.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/info/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs56 === errors){if(data17.title !== undefined){let data18 = data17.title;const _errs57 = errors;if(errors === _errs57){if(typeof data18 === "string"){if(func2(data18) > 200){validate97.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/title",schemaPath:"#/properties/info/additionalProperties/properties/title/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}else {if(func2(data18) < 1){validate97.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/title",schemaPath:"#/properties/info/additionalProperties/properties/title/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate97.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/title",schemaPath:"#/properties/info/additionalProperties/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid18 = _errs57 === errors;}else {var valid18 = true;}if(valid18){if(data17.text !== undefined){let data19 = data17.text;const _errs59 = errors;if(errors === _errs59){if(typeof data19 === "string"){if(func2(data19) > 1500){validate97.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/info/additionalProperties/properties/text/maxLength",keyword:"maxLength",params:{limit: 1500},message:"must NOT have more than 1500 characters"}];return false;}else {if(func2(data19) < 1){validate97.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/info/additionalProperties/properties/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate97.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/info/additionalProperties/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid18 = _errs59 === errors;}else {var valid18 = true;}if(valid18){if(data17.tone !== undefined){let data20 = data17.tone;const _errs61 = errors;if(!(((((((((data20 === "gray") || (data20 === "purple")) || (data20 === "teal")) || (data20 === "coral")) || (data20 === "pink")) || (data20 === "blue")) || (data20 === "green")) || (data20 === "amber")) || (data20 === "red"))){validate97.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/tone",schemaPath:"../common.schema.json#/$defs/tone/enum",keyword:"enum",params:{allowedValues: schema148.enum},message:"must be equal to one of the allowed values"}];return false;}var valid18 = _errs61 === errors;}else {var valid18 = true;}if(valid18){if(data17.code !== undefined){let data21 = data17.code;const _errs63 = errors;if(errors === _errs63){if(typeof data21 === "string"){if(func2(data21) > 2000){validate97.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/code",schemaPath:"#/properties/info/additionalProperties/properties/code/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data21) < 0){validate97.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/code",schemaPath:"#/properties/info/additionalProperties/properties/code/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate97.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/code",schemaPath:"#/properties/info/additionalProperties/properties/code/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid18 = _errs63 === errors;}else {var valid18 = true;}}}}}}}else {validate97.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/info/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid17 = _errs54 === errors;if(!valid17){break;}}}}}else {validate97.errors = [{instancePath:instancePath+"/info",schemaPath:"#/properties/info/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs48 === errors;}else {var valid0 = true;}if(valid0){if(data.steps !== undefined){let data22 = data.steps;const _errs65 = errors;if(errors === _errs65){if(Array.isArray(data22)){if(data22.length > 12){validate97.errors = [{instancePath:instancePath+"/steps",schemaPath:"#/properties/steps/maxItems",keyword:"maxItems",params:{limit: 12},message:"must NOT have more than 12 items"}];return false;}else {if(data22.length < 2){validate97.errors = [{instancePath:instancePath+"/steps",schemaPath:"#/properties/steps/minItems",keyword:"minItems",params:{limit: 2},message:"must NOT have fewer than 2 items"}];return false;}else {var valid20 = true;const len1 = data22.length;for(let i1=0; i1 200){validate97.errors = [{instancePath:instancePath+"/steps/" + i1+"/title",schemaPath:"#/properties/steps/items/properties/title/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}else {if(func2(data24) < 1){validate97.errors = [{instancePath:instancePath+"/steps/" + i1+"/title",schemaPath:"#/properties/steps/items/properties/title/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate97.errors = [{instancePath:instancePath+"/steps/" + i1+"/title",schemaPath:"#/properties/steps/items/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid21 = _errs70 === errors;}else {var valid21 = true;}if(valid21){if(data23.text !== undefined){let data25 = data23.text;const _errs72 = errors;if(errors === _errs72){if(typeof data25 === "string"){if(func2(data25) > 600){validate97.errors = [{instancePath:instancePath+"/steps/" + i1+"/text",schemaPath:"#/properties/steps/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 600},message:"must NOT have more than 600 characters"}];return false;}else {if(func2(data25) < 0){validate97.errors = [{instancePath:instancePath+"/steps/" + i1+"/text",schemaPath:"#/properties/steps/items/properties/text/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate97.errors = [{instancePath:instancePath+"/steps/" + i1+"/text",schemaPath:"#/properties/steps/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid21 = _errs72 === errors;}else {var valid21 = true;}}}}}else {validate97.errors = [{instancePath:instancePath+"/steps/" + i1,schemaPath:"#/properties/steps/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid20 = _errs67 === errors;if(!valid20){break;}}}}}else {validate97.errors = [{instancePath:instancePath+"/steps",schemaPath:"#/properties/steps/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs65 === errors;}else {var valid0 = true;}}}}}}}}}}}}}}else {validate97.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate97.errors = vErrors;return errors === 0;}validate97.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateFeatureGridData = validate108;const schema177 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/feature-grid.schema.json","type":"object","additionalProperties":false,"required":["items"],"properties":{"items":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["icon","title","text"],"properties":{"icon":{"enum":["book","flask","chart","shield","layers","terminal","rotate","save","laptop","eye","check","git"]},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"text":{"$ref":"../common.schema.json#/$defs/text","maxLength":300,"type":"string"},"tone":{"enum":["purple","teal","coral","pink","blue","green","amber","gray"]}}}}}};function validate109(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate109.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate109.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate109.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate109.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate109.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate109.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate109.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate109.errors = vErrors;return errors === 0;}validate109.evaluated = {"dynamicProps":false,"dynamicItems":false};function validate108(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/feature-grid.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate108.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((data.items === undefined) && (missing0 = "items")){validate108.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(key0 === "items")){validate108.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.items !== undefined){let data0 = data.items;const _errs2 = errors;if(errors === _errs2){if(Array.isArray(data0)){if(data0.length > 8){validate108.errors = [{instancePath:instancePath+"/items",schemaPath:"#/properties/items/maxItems",keyword:"maxItems",params:{limit: 8},message:"must NOT have more than 8 items"}];return false;}else {if(data0.length < 1){validate108.errors = [{instancePath:instancePath+"/items",schemaPath:"#/properties/items/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid1 = true;const len0 = data0.length;for(let i0=0; i0 2000){validate108.errors = [{instancePath:instancePath+"/items/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data4) < 1){validate108.errors = [{instancePath:instancePath+"/items/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate108.errors = [{instancePath:instancePath+"/items/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === _errs9){if(typeof data4 === "string"){if(func2(data4) > 300){validate108.errors = [{instancePath:instancePath+"/items/" + i0+"/text",schemaPath:"#/properties/items/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}}else {validate108.errors = [{instancePath:instancePath+"/items/" + i0+"/text",schemaPath:"#/properties/items/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs9 === errors;}else {var valid2 = true;}if(valid2){if(data1.tone !== undefined){let data5 = data1.tone;const _errs15 = errors;if(!((((((((data5 === "purple") || (data5 === "teal")) || (data5 === "coral")) || (data5 === "pink")) || (data5 === "blue")) || (data5 === "green")) || (data5 === "amber")) || (data5 === "gray"))){validate108.errors = [{instancePath:instancePath+"/items/" + i0+"/tone",schemaPath:"#/properties/items/items/properties/tone/enum",keyword:"enum",params:{allowedValues: schema177.properties.items.items.properties.tone.enum},message:"must be equal to one of the allowed values"}];return false;}var valid2 = _errs15 === errors;}else {var valid2 = true;}}}}}}}else {validate108.errors = [{instancePath:instancePath+"/items/" + i0,schemaPath:"#/properties/items/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid1 = _errs4 === errors;if(!valid1){break;}}}}}else {validate108.errors = [{instancePath:instancePath+"/items",schemaPath:"#/properties/items/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate108.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate108.errors = vErrors;return errors === 0;}validate108.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateTerminalDemoData = validate111;const schema181 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/terminal-demo.schema.json","type":"object","additionalProperties":false,"required":["title","lines"],"properties":{"title":{"$ref":"../common.schema.json#/$defs/shortText"},"lines":{"type":"array","minItems":1,"maxItems":14,"items":{"type":"object","additionalProperties":false,"required":["kind","text"],"properties":{"kind":{"enum":["command","output","ok","changed","comment"]},"text":{"type":"string","maxLength":120}}}}}};function validate112(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate112.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate112.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate112.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate112.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate112.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate112.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate112.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate112.errors = vErrors;return errors === 0;}validate112.evaluated = {"dynamicProps":false,"dynamicItems":false};function validate111(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/terminal-demo.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate111.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.title === undefined) && (missing0 = "title")) || ((data.lines === undefined) && (missing0 = "lines"))){validate111.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "title") || (key0 === "lines"))){validate111.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.title !== undefined){const _errs2 = errors;if(!(validate112(data.title, {instancePath:instancePath+"/title",parentData:data,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate112.errors : vErrors.concat(validate112.errors);errors = vErrors.length;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.lines !== undefined){let data1 = data.lines;const _errs3 = errors;if(errors === _errs3){if(Array.isArray(data1)){if(data1.length > 14){validate111.errors = [{instancePath:instancePath+"/lines",schemaPath:"#/properties/lines/maxItems",keyword:"maxItems",params:{limit: 14},message:"must NOT have more than 14 items"}];return false;}else {if(data1.length < 1){validate111.errors = [{instancePath:instancePath+"/lines",schemaPath:"#/properties/lines/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid1 = true;const len0 = data1.length;for(let i0=0; i0 120){validate111.errors = [{instancePath:instancePath+"/lines/" + i0+"/text",schemaPath:"#/properties/lines/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 120},message:"must NOT have more than 120 characters"}];return false;}}else {validate111.errors = [{instancePath:instancePath+"/lines/" + i0+"/text",schemaPath:"#/properties/lines/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs9 === errors;}else {var valid2 = true;}}}}}else {validate111.errors = [{instancePath:instancePath+"/lines/" + i0,schemaPath:"#/properties/lines/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}}else {validate111.errors = [{instancePath:instancePath+"/lines",schemaPath:"#/properties/lines/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs3 === errors;}else {var valid0 = true;}}}}}else {validate111.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate111.errors = vErrors;return errors === 0;}validate111.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; +export const validateSite = validate20;const schema31 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/bundle/site.schema.json","type":"object","additionalProperties":false,"required":["apiVersion","generatedAt","site","programs"],"properties":{"apiVersion":{"$ref":"../common.schema.json#/$defs/apiVersion"},"generatedAt":{"type":"string","pattern":"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:\\.[0-9]+)?Z$"},"site":{"type":"object","additionalProperties":false,"required":["name","tagline"],"properties":{"name":{"$ref":"../common.schema.json#/$defs/shortText"},"tagline":{"$ref":"../common.schema.json#/$defs/shortText"},"description":{"$ref":"../common.schema.json#/$defs/text"},"repo":{"$ref":"../common.schema.json#/$defs/url"},"links":{"type":"array"},"legal":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"},"theme":{"$ref":"../source/theme.schema.json"},"home":{"$ref":"#/$defs/hashedUrl"}}},"ui":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{"type":"string","maxLength":1000}}}},"programs":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["id","title","label","platform","status","summary","manifest"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/id"},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"label":{"$ref":"../common.schema.json#/$defs/shortText"},"tagline":{"$ref":"../common.schema.json#/$defs/shortText"},"summary":{"$ref":"../common.schema.json#/$defs/text"},"platform":{"$ref":"../source/program.schema.json#/properties/platform"},"status":{"enum":["active","planned"]},"theme":{"$ref":"../source/theme.schema.json"},"sections":{"type":"integer","minimum":0},"manifest":{"$ref":"#/$defs/hashedUrl"},"showcase":{"$ref":"../source/program.schema.json#/properties/showcase"}}}},"lab":{"type":"string","const":"lab/"},"signature":{"$ref":"#/$defs/hashedUrl"},"interface":{"$ref":"#/$defs/hashedUrl"},"legacyProgram":{"$ref":"../common.schema.json#/$defs/id"}},"$defs":{"hashedUrl":{"type":"string","pattern":"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"}}};const schema33 = {"const":1};const schema35 = {"type":"string","minLength":1,"maxLength":2000,"not":{"pattern":"[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F]"}};const schema37 = {"type":"string","maxLength":2048,"pattern":"^(?:#[/A-Za-z0-9._~%!$&'()*+,;=:@?#-]*|lab/[a-z0-9][a-z0-9._/-]*|https://[^\\s<>\"]+|mailto:[^\\s<>\"]+)$"};const schema38 = {"type":"string","minLength":1,"maxLength":4000,"not":{"pattern":"<\\s*/?\\s*[a-zA-Z!]"}};const schema48 = {"type":"string","pattern":"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"};const schema49 = {"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":64};const func1 = Object.prototype.hasOwnProperty;const func2 = runtime0;const pattern4 = new RegExp("^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:\\.[0-9]+)?Z$", "u");const pattern5 = new RegExp("[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F]", "u");const pattern7 = new RegExp("^(?:#[/A-Za-z0-9._~%!$&'()*+,;=:@?#-]*|lab/[a-z0-9][a-z0-9._/-]*|https://[^\\s<>\"]+|mailto:[^\\s<>\"]+)$", "u");const pattern8 = new RegExp("<\\s*/?\\s*[a-zA-Z!]", "u");const pattern17 = new RegExp("^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$", "u");const pattern18 = new RegExp("^[a-z0-9]+(?:-[a-z0-9]+)*$", "u");const schema34 = {"$ref":"#/$defs/text","maxLength":160,"type":"string"};function validate22(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate22.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate22.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate22.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate22.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate22.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate22.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate22.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate22.errors = vErrors;return errors === 0;}validate22.evaluated = {"dynamicProps":false,"dynamicItems":false};const schema39 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/source/theme.schema.json","type":"object","additionalProperties":false,"properties":{"accent":{"$ref":"../common.schema.json#/$defs/color"},"accentHover":{"$ref":"../common.schema.json#/$defs/color"},"accentSoft":{"$ref":"../common.schema.json#/$defs/color"},"accentText":{"$ref":"../common.schema.json#/$defs/color"},"dark":{"type":"object","additionalProperties":false,"properties":{"accent":{"$ref":"../common.schema.json#/$defs/color"},"accentHover":{"$ref":"../common.schema.json#/$defs/color"},"accentSoft":{"$ref":"../common.schema.json#/$defs/color"},"accentText":{"$ref":"../common.schema.json#/$defs/color"}}}}};const schema40 = {"type":"string","pattern":"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"};const pattern9 = new RegExp("^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$", "u");function validate25(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/source/theme.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate25.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){const _errs1 = errors;for(const key0 in data){if(!(((((key0 === "accent") || (key0 === "accentHover")) || (key0 === "accentSoft")) || (key0 === "accentText")) || (key0 === "dark"))){validate25.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.accent !== undefined){let data0 = data.accent;const _errs2 = errors;const _errs3 = errors;if(errors === _errs3){if(typeof data0 === "string"){if(!pattern9.test(data0)){validate25.errors = [{instancePath:instancePath+"/accent",schemaPath:"../common.schema.json#/$defs/color/pattern",keyword:"pattern",params:{pattern: "^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"},message:"must match pattern \""+"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"+"\""}];return false;}}else {validate25.errors = [{instancePath:instancePath+"/accent",schemaPath:"../common.schema.json#/$defs/color/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.accentHover !== undefined){let data1 = data.accentHover;const _errs5 = errors;const _errs6 = errors;if(errors === _errs6){if(typeof data1 === "string"){if(!pattern9.test(data1)){validate25.errors = [{instancePath:instancePath+"/accentHover",schemaPath:"../common.schema.json#/$defs/color/pattern",keyword:"pattern",params:{pattern: "^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"},message:"must match pattern \""+"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"+"\""}];return false;}}else {validate25.errors = [{instancePath:instancePath+"/accentHover",schemaPath:"../common.schema.json#/$defs/color/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.accentSoft !== undefined){let data2 = data.accentSoft;const _errs8 = errors;const _errs9 = errors;if(errors === _errs9){if(typeof data2 === "string"){if(!pattern9.test(data2)){validate25.errors = [{instancePath:instancePath+"/accentSoft",schemaPath:"../common.schema.json#/$defs/color/pattern",keyword:"pattern",params:{pattern: "^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"},message:"must match pattern \""+"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"+"\""}];return false;}}else {validate25.errors = [{instancePath:instancePath+"/accentSoft",schemaPath:"../common.schema.json#/$defs/color/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs8 === errors;}else {var valid0 = true;}if(valid0){if(data.accentText !== undefined){let data3 = data.accentText;const _errs11 = errors;const _errs12 = errors;if(errors === _errs12){if(typeof data3 === "string"){if(!pattern9.test(data3)){validate25.errors = [{instancePath:instancePath+"/accentText",schemaPath:"../common.schema.json#/$defs/color/pattern",keyword:"pattern",params:{pattern: "^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"},message:"must match pattern \""+"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"+"\""}];return false;}}else {validate25.errors = [{instancePath:instancePath+"/accentText",schemaPath:"../common.schema.json#/$defs/color/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs11 === errors;}else {var valid0 = true;}if(valid0){if(data.dark !== undefined){let data4 = data.dark;const _errs14 = errors;if(errors === _errs14){if(data4 && typeof data4 == "object" && !Array.isArray(data4)){const _errs16 = errors;for(const key1 in data4){if(!((((key1 === "accent") || (key1 === "accentHover")) || (key1 === "accentSoft")) || (key1 === "accentText"))){validate25.errors = [{instancePath:instancePath+"/dark",schemaPath:"#/properties/dark/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs16 === errors){if(data4.accent !== undefined){let data5 = data4.accent;const _errs17 = errors;const _errs18 = errors;if(errors === _errs18){if(typeof data5 === "string"){if(!pattern9.test(data5)){validate25.errors = [{instancePath:instancePath+"/dark/accent",schemaPath:"../common.schema.json#/$defs/color/pattern",keyword:"pattern",params:{pattern: "^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"},message:"must match pattern \""+"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"+"\""}];return false;}}else {validate25.errors = [{instancePath:instancePath+"/dark/accent",schemaPath:"../common.schema.json#/$defs/color/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs17 === errors;}else {var valid5 = true;}if(valid5){if(data4.accentHover !== undefined){let data6 = data4.accentHover;const _errs20 = errors;const _errs21 = errors;if(errors === _errs21){if(typeof data6 === "string"){if(!pattern9.test(data6)){validate25.errors = [{instancePath:instancePath+"/dark/accentHover",schemaPath:"../common.schema.json#/$defs/color/pattern",keyword:"pattern",params:{pattern: "^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"},message:"must match pattern \""+"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"+"\""}];return false;}}else {validate25.errors = [{instancePath:instancePath+"/dark/accentHover",schemaPath:"../common.schema.json#/$defs/color/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs20 === errors;}else {var valid5 = true;}if(valid5){if(data4.accentSoft !== undefined){let data7 = data4.accentSoft;const _errs23 = errors;const _errs24 = errors;if(errors === _errs24){if(typeof data7 === "string"){if(!pattern9.test(data7)){validate25.errors = [{instancePath:instancePath+"/dark/accentSoft",schemaPath:"../common.schema.json#/$defs/color/pattern",keyword:"pattern",params:{pattern: "^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"},message:"must match pattern \""+"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"+"\""}];return false;}}else {validate25.errors = [{instancePath:instancePath+"/dark/accentSoft",schemaPath:"../common.schema.json#/$defs/color/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs23 === errors;}else {var valid5 = true;}if(valid5){if(data4.accentText !== undefined){let data8 = data4.accentText;const _errs26 = errors;const _errs27 = errors;if(errors === _errs27){if(typeof data8 === "string"){if(!pattern9.test(data8)){validate25.errors = [{instancePath:instancePath+"/dark/accentText",schemaPath:"../common.schema.json#/$defs/color/pattern",keyword:"pattern",params:{pattern: "^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"},message:"must match pattern \""+"^(?:#[0-9a-fA-F]{3}|#[0-9a-fA-F]{6}|oklch\\(\\s*[0-9.]+%?\\s+[0-9.]+\\s+[0-9.]+\\s*\\))$"+"\""}];return false;}}else {validate25.errors = [{instancePath:instancePath+"/dark/accentText",schemaPath:"../common.schema.json#/$defs/color/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs26 === errors;}else {var valid5 = true;}}}}}}else {validate25.errors = [{instancePath:instancePath+"/dark",schemaPath:"#/properties/dark/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs14 === errors;}else {var valid0 = true;}}}}}}}else {validate25.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate25.errors = vErrors;return errors === 0;}validate25.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema66 = {"type":"object","additionalProperties":false,"required":["family","version","label"],"properties":{"family":{"$ref":"../common.schema.json#/$defs/id"},"version":{"type":"string","pattern":"^[0-9]+(?:\\.[0-9]+)?$"},"label":{"$ref":"../common.schema.json#/$defs/shortText","maxLength":24,"type":"string"}}};const pattern24 = new RegExp("^[0-9]+(?:\\.[0-9]+)?$", "u");function validate31(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate31.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate31.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate31.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate31.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate31.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate31.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate31.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate31.errors = vErrors;return errors === 0;}validate31.evaluated = {"dynamicProps":false,"dynamicItems":false};function validate50(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate50.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((data.family === undefined) && (missing0 = "family")) || ((data.version === undefined) && (missing0 = "version"))) || ((data.label === undefined) && (missing0 = "label"))){validate50.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((key0 === "family") || (key0 === "version")) || (key0 === "label"))){validate50.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.family !== undefined){let data0 = data.family;const _errs2 = errors;const _errs3 = errors;if(errors === _errs3){if(typeof data0 === "string"){if(func2(data0) > 64){validate50.errors = [{instancePath:instancePath+"/family",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data0)){validate50.errors = [{instancePath:instancePath+"/family",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate50.errors = [{instancePath:instancePath+"/family",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.version !== undefined){let data1 = data.version;const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(!pattern24.test(data1)){validate50.errors = [{instancePath:instancePath+"/version",schemaPath:"#/properties/version/pattern",keyword:"pattern",params:{pattern: "^[0-9]+(?:\\.[0-9]+)?$"},message:"must match pattern \""+"^[0-9]+(?:\\.[0-9]+)?$"+"\""}];return false;}}else {validate50.errors = [{instancePath:instancePath+"/version",schemaPath:"#/properties/version/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.label !== undefined){let data2 = data.label;const _errs7 = errors;if(!(validate31(data2, {instancePath:instancePath+"/label",parentData:data,parentDataProperty:"label",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}if(errors === _errs7){if(typeof data2 === "string"){if(func2(data2) > 24){validate50.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/maxLength",keyword:"maxLength",params:{limit: 24},message:"must NOT have more than 24 characters"}];return false;}}else {validate50.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}}}}}}else {validate50.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate50.errors = vErrors;return errors === 0;}validate50.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema69 = {"type":"object","additionalProperties":false,"required":["art"],"properties":{"art":{"enum":["automation","terminal"]},"tone":{"enum":["purple","teal","coral","pink","blue","green","amber","gray"]},"highlights":{"type":"array","maxItems":6,"items":{"$ref":"../common.schema.json#/$defs/shortText","maxLength":28,"type":"string"}},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"label":{"$ref":"../common.schema.json#/$defs/shortText","maxLength":24,"type":"string"},"summary":{"$ref":"../common.schema.json#/$defs/text","maxLength":400,"type":"string"}}};function validate54(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate54.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((data.art === undefined) && (missing0 = "art")){validate54.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((((((key0 === "art") || (key0 === "tone")) || (key0 === "highlights")) || (key0 === "title")) || (key0 === "label")) || (key0 === "summary"))){validate54.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.art !== undefined){let data0 = data.art;const _errs2 = errors;if(!((data0 === "automation") || (data0 === "terminal"))){validate54.errors = [{instancePath:instancePath+"/art",schemaPath:"#/properties/art/enum",keyword:"enum",params:{allowedValues: schema69.properties.art.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.tone !== undefined){let data1 = data.tone;const _errs3 = errors;if(!((((((((data1 === "purple") || (data1 === "teal")) || (data1 === "coral")) || (data1 === "pink")) || (data1 === "blue")) || (data1 === "green")) || (data1 === "amber")) || (data1 === "gray"))){validate54.errors = [{instancePath:instancePath+"/tone",schemaPath:"#/properties/tone/enum",keyword:"enum",params:{allowedValues: schema69.properties.tone.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.highlights !== undefined){let data2 = data.highlights;const _errs4 = errors;if(errors === _errs4){if(Array.isArray(data2)){if(data2.length > 6){validate54.errors = [{instancePath:instancePath+"/highlights",schemaPath:"#/properties/highlights/maxItems",keyword:"maxItems",params:{limit: 6},message:"must NOT have more than 6 items"}];return false;}else {var valid1 = true;const len0 = data2.length;for(let i0=0; i0 28){validate54.errors = [{instancePath:instancePath+"/highlights/" + i0,schemaPath:"#/properties/highlights/items/maxLength",keyword:"maxLength",params:{limit: 28},message:"must NOT have more than 28 characters"}];return false;}}else {validate54.errors = [{instancePath:instancePath+"/highlights/" + i0,schemaPath:"#/properties/highlights/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs6 === errors;if(!valid1){break;}}}}else {validate54.errors = [{instancePath:instancePath+"/highlights",schemaPath:"#/properties/highlights/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.title !== undefined){const _errs8 = errors;if(!(validate31(data.title, {instancePath:instancePath+"/title",parentData:data,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}var valid0 = _errs8 === errors;}else {var valid0 = true;}if(valid0){if(data.label !== undefined){let data5 = data.label;const _errs9 = errors;if(!(validate31(data5, {instancePath:instancePath+"/label",parentData:data,parentDataProperty:"label",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}if(errors === _errs9){if(typeof data5 === "string"){if(func2(data5) > 24){validate54.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/maxLength",keyword:"maxLength",params:{limit: 24},message:"must NOT have more than 24 characters"}];return false;}}else {validate54.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs9 === errors;}else {var valid0 = true;}if(valid0){if(data.summary !== undefined){let data6 = data.summary;const _errs11 = errors;const _errs12 = errors;const _errs14 = errors;const _errs15 = errors;if(typeof data6 === "string"){if(!pattern5.test(data6)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid3 = _errs15 === errors;if(valid3){validate54.errors = [{instancePath:instancePath+"/summary",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs14;if(vErrors !== null){if(_errs14){vErrors.length = _errs14;}else {vErrors = null;}}}if(errors === _errs12){if(typeof data6 === "string"){if(func2(data6) > 2000){validate54.errors = [{instancePath:instancePath+"/summary",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data6) < 1){validate54.errors = [{instancePath:instancePath+"/summary",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate54.errors = [{instancePath:instancePath+"/summary",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === _errs11){if(typeof data6 === "string"){if(func2(data6) > 400){validate54.errors = [{instancePath:instancePath+"/summary",schemaPath:"#/properties/summary/maxLength",keyword:"maxLength",params:{limit: 400},message:"must NOT have more than 400 characters"}];return false;}}else {validate54.errors = [{instancePath:instancePath+"/summary",schemaPath:"#/properties/summary/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs11 === errors;}else {var valid0 = true;}}}}}}}}}else {validate54.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate54.errors = vErrors;return errors === 0;}validate54.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/bundle/site.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((((data.apiVersion === undefined) && (missing0 = "apiVersion")) || ((data.generatedAt === undefined) && (missing0 = "generatedAt"))) || ((data.site === undefined) && (missing0 = "site"))) || ((data.programs === undefined) && (missing0 = "programs"))){validate20.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema31.properties, key0))){validate20.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.apiVersion !== undefined){const _errs2 = errors;if(1 !== data.apiVersion){validate20.errors = [{instancePath:instancePath+"/apiVersion",schemaPath:"../common.schema.json#/$defs/apiVersion/const",keyword:"const",params:{allowedValue: 1},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.generatedAt !== undefined){let data1 = data.generatedAt;const _errs4 = errors;if(errors === _errs4){if(typeof data1 === "string"){if(!pattern4.test(data1)){validate20.errors = [{instancePath:instancePath+"/generatedAt",schemaPath:"#/properties/generatedAt/pattern",keyword:"pattern",params:{pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:\\.[0-9]+)?Z$"},message:"must match pattern \""+"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(?:\\.[0-9]+)?Z$"+"\""}];return false;}}else {validate20.errors = [{instancePath:instancePath+"/generatedAt",schemaPath:"#/properties/generatedAt/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.site !== undefined){let data2 = data.site;const _errs6 = errors;if(errors === _errs6){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){let missing1;if(((data2.name === undefined) && (missing1 = "name")) || ((data2.tagline === undefined) && (missing1 = "tagline"))){validate20.errors = [{instancePath:instancePath+"/site",schemaPath:"#/properties/site/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs8 = errors;for(const key1 in data2){if(!((((((((key1 === "name") || (key1 === "tagline")) || (key1 === "description")) || (key1 === "repo")) || (key1 === "links")) || (key1 === "legal")) || (key1 === "theme")) || (key1 === "home"))){validate20.errors = [{instancePath:instancePath+"/site",schemaPath:"#/properties/site/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs8 === errors){if(data2.name !== undefined){const _errs9 = errors;if(!(validate22(data2.name, {instancePath:instancePath+"/site/name",parentData:data2,parentDataProperty:"name",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}var valid2 = _errs9 === errors;}else {var valid2 = true;}if(valid2){if(data2.tagline !== undefined){const _errs10 = errors;if(!(validate22(data2.tagline, {instancePath:instancePath+"/site/tagline",parentData:data2,parentDataProperty:"tagline",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data2.description !== undefined){let data5 = data2.description;const _errs11 = errors;const _errs12 = errors;const _errs14 = errors;const _errs15 = errors;if(typeof data5 === "string"){if(!pattern5.test(data5)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid4 = _errs15 === errors;if(valid4){validate20.errors = [{instancePath:instancePath+"/site/description",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs14;if(vErrors !== null){if(_errs14){vErrors.length = _errs14;}else {vErrors = null;}}}if(errors === _errs12){if(typeof data5 === "string"){if(func2(data5) > 2000){validate20.errors = [{instancePath:instancePath+"/site/description",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data5) < 1){validate20.errors = [{instancePath:instancePath+"/site/description",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate20.errors = [{instancePath:instancePath+"/site/description",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs11 === errors;}else {var valid2 = true;}if(valid2){if(data2.repo !== undefined){let data6 = data2.repo;const _errs16 = errors;const _errs17 = errors;if(errors === _errs17){if(typeof data6 === "string"){if(func2(data6) > 2048){validate20.errors = [{instancePath:instancePath+"/site/repo",schemaPath:"../common.schema.json#/$defs/url/maxLength",keyword:"maxLength",params:{limit: 2048},message:"must NOT have more than 2048 characters"}];return false;}else {if(!pattern7.test(data6)){validate20.errors = [{instancePath:instancePath+"/site/repo",schemaPath:"../common.schema.json#/$defs/url/pattern",keyword:"pattern",params:{pattern: "^(?:#[/A-Za-z0-9._~%!$&'()*+,;=:@?#-]*|lab/[a-z0-9][a-z0-9._/-]*|https://[^\\s<>\"]+|mailto:[^\\s<>\"]+)$"},message:"must match pattern \""+"^(?:#[/A-Za-z0-9._~%!$&'()*+,;=:@?#-]*|lab/[a-z0-9][a-z0-9._/-]*|https://[^\\s<>\"]+|mailto:[^\\s<>\"]+)$"+"\""}];return false;}}}else {validate20.errors = [{instancePath:instancePath+"/site/repo",schemaPath:"../common.schema.json#/$defs/url/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs16 === errors;}else {var valid2 = true;}if(valid2){if(data2.links !== undefined){const _errs19 = errors;if(!(Array.isArray(data2.links))){validate20.errors = [{instancePath:instancePath+"/site/links",schemaPath:"#/properties/site/properties/links/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}var valid2 = _errs19 === errors;}else {var valid2 = true;}if(valid2){if(data2.legal !== undefined){let data8 = data2.legal;const _errs21 = errors;const _errs22 = errors;const _errs24 = errors;const _errs25 = errors;if(typeof data8 === "string"){if(!pattern8.test(data8)){const err1 = {};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}var valid7 = _errs25 === errors;if(valid7){validate20.errors = [{instancePath:instancePath+"/site/legal",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs24;if(vErrors !== null){if(_errs24){vErrors.length = _errs24;}else {vErrors = null;}}}if(errors === _errs22){if(typeof data8 === "string"){if(func2(data8) > 4000){validate20.errors = [{instancePath:instancePath+"/site/legal",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data8) < 1){validate20.errors = [{instancePath:instancePath+"/site/legal",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate20.errors = [{instancePath:instancePath+"/site/legal",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs21 === errors;}else {var valid2 = true;}if(valid2){if(data2.theme !== undefined){const _errs26 = errors;if(!(validate25(data2.theme, {instancePath:instancePath+"/site/theme",parentData:data2,parentDataProperty:"theme",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate25.errors : vErrors.concat(validate25.errors);errors = vErrors.length;}var valid2 = _errs26 === errors;}else {var valid2 = true;}if(valid2){if(data2.home !== undefined){let data10 = data2.home;const _errs27 = errors;const _errs28 = errors;if(errors === _errs28){if(typeof data10 === "string"){if(!pattern17.test(data10)){validate20.errors = [{instancePath:instancePath+"/site/home",schemaPath:"#/$defs/hashedUrl/pattern",keyword:"pattern",params:{pattern: "^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"},message:"must match pattern \""+"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"+"\""}];return false;}}else {validate20.errors = [{instancePath:instancePath+"/site/home",schemaPath:"#/$defs/hashedUrl/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs27 === errors;}else {var valid2 = true;}}}}}}}}}}}else {validate20.errors = [{instancePath:instancePath+"/site",schemaPath:"#/properties/site/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs6 === errors;}else {var valid0 = true;}if(valid0){if(data.ui !== undefined){let data11 = data.ui;const _errs30 = errors;if(errors === _errs30){if(data11 && typeof data11 == "object" && !Array.isArray(data11)){for(const key2 in data11){let data12 = data11[key2];const _errs33 = errors;if(errors === _errs33){if(data12 && typeof data12 == "object" && !Array.isArray(data12)){for(const key3 in data12){let data13 = data12[key3];const _errs36 = errors;if(errors === _errs36){if(data13 && typeof data13 == "object" && !Array.isArray(data13)){for(const key4 in data13){let data14 = data13[key4];const _errs39 = errors;if(errors === _errs39){if(typeof data14 === "string"){if(func2(data14) > 1000){validate20.errors = [{instancePath:instancePath+"/ui/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/ui/additionalProperties/additionalProperties/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 1000},message:"must NOT have more than 1000 characters"}];return false;}}else {validate20.errors = [{instancePath:instancePath+"/ui/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/ui/additionalProperties/additionalProperties/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid11 = _errs39 === errors;if(!valid11){break;}}}else {validate20.errors = [{instancePath:instancePath+"/ui/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/ui/additionalProperties/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid10 = _errs36 === errors;if(!valid10){break;}}}else {validate20.errors = [{instancePath:instancePath+"/ui/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/ui/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid9 = _errs33 === errors;if(!valid9){break;}}}else {validate20.errors = [{instancePath:instancePath+"/ui",schemaPath:"#/properties/ui/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs30 === errors;}else {var valid0 = true;}if(valid0){if(data.programs !== undefined){let data15 = data.programs;const _errs41 = errors;if(errors === _errs41){if(Array.isArray(data15)){if(data15.length < 1){validate20.errors = [{instancePath:instancePath+"/programs",schemaPath:"#/properties/programs/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid12 = true;const len0 = data15.length;for(let i0=0; i0 64){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data17)){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid13 = _errs46 === errors;}else {var valid13 = true;}if(valid13){if(data16.title !== undefined){const _errs49 = errors;if(!(validate22(data16.title, {instancePath:instancePath+"/programs/" + i0+"/title",parentData:data16,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}var valid13 = _errs49 === errors;}else {var valid13 = true;}if(valid13){if(data16.label !== undefined){const _errs50 = errors;if(!(validate22(data16.label, {instancePath:instancePath+"/programs/" + i0+"/label",parentData:data16,parentDataProperty:"label",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}var valid13 = _errs50 === errors;}else {var valid13 = true;}if(valid13){if(data16.tagline !== undefined){const _errs51 = errors;if(!(validate22(data16.tagline, {instancePath:instancePath+"/programs/" + i0+"/tagline",parentData:data16,parentDataProperty:"tagline",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}var valid13 = _errs51 === errors;}else {var valid13 = true;}if(valid13){if(data16.summary !== undefined){let data21 = data16.summary;const _errs52 = errors;const _errs53 = errors;const _errs55 = errors;const _errs56 = errors;if(typeof data21 === "string"){if(!pattern5.test(data21)){const err2 = {};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}var valid16 = _errs56 === errors;if(valid16){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/summary",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs55;if(vErrors !== null){if(_errs55){vErrors.length = _errs55;}else {vErrors = null;}}}if(errors === _errs53){if(typeof data21 === "string"){if(func2(data21) > 2000){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/summary",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data21) < 1){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/summary",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/summary",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid13 = _errs52 === errors;}else {var valid13 = true;}if(valid13){if(data16.platform !== undefined){const _errs57 = errors;if(!(validate50(data16.platform, {instancePath:instancePath+"/programs/" + i0+"/platform",parentData:data16,parentDataProperty:"platform",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate50.errors : vErrors.concat(validate50.errors);errors = vErrors.length;}var valid13 = _errs57 === errors;}else {var valid13 = true;}if(valid13){if(data16.status !== undefined){let data23 = data16.status;const _errs58 = errors;if(!((data23 === "active") || (data23 === "planned"))){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/status",schemaPath:"#/properties/programs/items/properties/status/enum",keyword:"enum",params:{allowedValues: schema31.properties.programs.items.properties.status.enum},message:"must be equal to one of the allowed values"}];return false;}var valid13 = _errs58 === errors;}else {var valid13 = true;}if(valid13){if(data16.theme !== undefined){const _errs59 = errors;if(!(validate25(data16.theme, {instancePath:instancePath+"/programs/" + i0+"/theme",parentData:data16,parentDataProperty:"theme",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate25.errors : vErrors.concat(validate25.errors);errors = vErrors.length;}var valid13 = _errs59 === errors;}else {var valid13 = true;}if(valid13){if(data16.sections !== undefined){let data25 = data16.sections;const _errs60 = errors;if(!(((typeof data25 == "number") && (!(data25 % 1) && !isNaN(data25))) && (isFinite(data25)))){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/sections",schemaPath:"#/properties/programs/items/properties/sections/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs60){if((typeof data25 == "number") && (isFinite(data25))){if(data25 < 0 || isNaN(data25)){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/sections",schemaPath:"#/properties/programs/items/properties/sections/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"}];return false;}}}var valid13 = _errs60 === errors;}else {var valid13 = true;}if(valid13){if(data16.manifest !== undefined){let data26 = data16.manifest;const _errs62 = errors;const _errs63 = errors;if(errors === _errs63){if(typeof data26 === "string"){if(!pattern17.test(data26)){validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/manifest",schemaPath:"#/$defs/hashedUrl/pattern",keyword:"pattern",params:{pattern: "^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"},message:"must match pattern \""+"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"+"\""}];return false;}}else {validate20.errors = [{instancePath:instancePath+"/programs/" + i0+"/manifest",schemaPath:"#/$defs/hashedUrl/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid13 = _errs62 === errors;}else {var valid13 = true;}if(valid13){if(data16.showcase !== undefined){const _errs65 = errors;if(!(validate54(data16.showcase, {instancePath:instancePath+"/programs/" + i0+"/showcase",parentData:data16,parentDataProperty:"showcase",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate54.errors : vErrors.concat(validate54.errors);errors = vErrors.length;}var valid13 = _errs65 === errors;}else {var valid13 = true;}}}}}}}}}}}}}}else {validate20.errors = [{instancePath:instancePath+"/programs/" + i0,schemaPath:"#/properties/programs/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid12 = _errs43 === errors;if(!valid12){break;}}}}else {validate20.errors = [{instancePath:instancePath+"/programs",schemaPath:"#/properties/programs/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs41 === errors;}else {var valid0 = true;}if(valid0){if(data.lab !== undefined){let data28 = data.lab;const _errs66 = errors;if(typeof data28 !== "string"){validate20.errors = [{instancePath:instancePath+"/lab",schemaPath:"#/properties/lab/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}if("lab/" !== data28){validate20.errors = [{instancePath:instancePath+"/lab",schemaPath:"#/properties/lab/const",keyword:"const",params:{allowedValue: "lab/"},message:"must be equal to constant"}];return false;}var valid0 = _errs66 === errors;}else {var valid0 = true;}if(valid0){if(data.signature !== undefined){let data29 = data.signature;const _errs68 = errors;const _errs69 = errors;if(errors === _errs69){if(typeof data29 === "string"){if(!pattern17.test(data29)){validate20.errors = [{instancePath:instancePath+"/signature",schemaPath:"#/$defs/hashedUrl/pattern",keyword:"pattern",params:{pattern: "^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"},message:"must match pattern \""+"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"+"\""}];return false;}}else {validate20.errors = [{instancePath:instancePath+"/signature",schemaPath:"#/$defs/hashedUrl/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs68 === errors;}else {var valid0 = true;}if(valid0){if(data.interface !== undefined){let data30 = data.interface;const _errs71 = errors;const _errs72 = errors;if(errors === _errs72){if(typeof data30 === "string"){if(!pattern17.test(data30)){validate20.errors = [{instancePath:instancePath+"/interface",schemaPath:"#/$defs/hashedUrl/pattern",keyword:"pattern",params:{pattern: "^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"},message:"must match pattern \""+"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"+"\""}];return false;}}else {validate20.errors = [{instancePath:instancePath+"/interface",schemaPath:"#/$defs/hashedUrl/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs71 === errors;}else {var valid0 = true;}if(valid0){if(data.legacyProgram !== undefined){let data31 = data.legacyProgram;const _errs74 = errors;const _errs75 = errors;if(errors === _errs75){if(typeof data31 === "string"){if(func2(data31) > 64){validate20.errors = [{instancePath:instancePath+"/legacyProgram",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data31)){validate20.errors = [{instancePath:instancePath+"/legacyProgram",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate20.errors = [{instancePath:instancePath+"/legacyProgram",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs74 === errors;}else {var valid0 = true;}}}}}}}}}}}}else {validate20.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateManifest = validate59;const schema74 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/bundle/manifest.schema.json","type":"object","additionalProperties":false,"required":["apiVersion","program","chapters","objectives","pages","search"],"properties":{"apiVersion":{"$ref":"../common.schema.json#/$defs/apiVersion"},"program":{"$ref":"../source/program.schema.json"},"chapters":{"type":"array","maxItems":99,"items":{"type":"object","additionalProperties":false,"required":["id","number","title","status","sections"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/chapterId"},"number":{"type":"integer","minimum":1,"maximum":99},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"goal":{"$ref":"../common.schema.json#/$defs/text"},"objectives":{"type":"array","items":{"$ref":"../common.schema.json#/$defs/text"}},"objectiveIds":{"type":"array","items":{"$ref":"../common.schema.json#/$defs/objectiveId"}},"topics":{"type":"array","items":{"$ref":"../common.schema.json#/$defs/shortText"}},"setup":{"type":"boolean"},"status":{"enum":["active","planned"]},"sections":{"type":"array","maxItems":60,"items":{"type":"object","additionalProperties":false,"required":["slug","title","kind","minutes"],"properties":{"slug":{"$ref":"../common.schema.json#/$defs/id"},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"kind":{"enum":["lesson","lab","quiz","summary","reference"]},"minutes":{"$ref":"../common.schema.json#/$defs/minutes"},"activities":{"type":"object","additionalProperties":false,"properties":{"quizzes":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","quizId","prompt","revision"],"properties":{"id":{"type":"string","pattern":"^q-[a-z0-9]{6,32}$"},"quizId":{"$ref":"../common.schema.json#/$defs/id"},"prompt":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"},"revision":{"type":"string","pattern":"^[a-f0-9]{1,16}$"}}}},"tasks":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","labId","title"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/id"},"labId":{"$ref":"../common.schema.json#/$defs/id"},"title":{"$ref":"../common.schema.json#/$defs/shortText"}}}},"practice":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["id","objective","title"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/id"},"objective":{"$ref":"../common.schema.json#/$defs/objectiveId"},"title":{"$ref":"../common.schema.json#/$defs/shortText"}}}}}},"seoTitle":{"$ref":"../common.schema.json#/$defs/seoTitle"},"description":{"$ref":"../common.schema.json#/$defs/text","maxLength":300,"type":"string"}}}},"seoTitle":{"$ref":"../common.schema.json#/$defs/seoTitle"},"seoDescription":{"$ref":"../common.schema.json#/$defs/seoDescription"}}}},"objectives":{"$ref":"../source/objectives.schema.json"},"pages":{"type":"object","propertyNames":{"pattern":"^(?:ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*|home|details)$"},"additionalProperties":{"$ref":"site.schema.json#/$defs/hashedUrl"}},"search":{"$ref":"site.schema.json#/$defs/hashedUrl"},"legacy":{"$ref":"site.schema.json#/$defs/hashedUrl"},"labReports":{"type":"object","additionalProperties":false,"required":["exercises"],"properties":{"exercises":{"type":"object","maxProperties":500,"propertyNames":{"$ref":"../common.schema.json#/$defs/id"},"additionalProperties":{"type":"object","additionalProperties":false,"required":["version","lesson","checkpoints"],"properties":{"version":{"type":"integer","minimum":1},"lesson":{"type":"string","pattern":"^#/ch[0-9]{2}/[a-z0-9-]+$"},"checkpoints":{"type":"object","required":["final"],"additionalProperties":{"type":"object","additionalProperties":false,"required":["files","groups","local","probes"],"properties":{"files":{"type":"array","maxItems":500,"items":{"type":"string","maxLength":240}},"groups":{"type":"object","additionalProperties":{"type":"array","maxItems":500,"items":{"type":"string","maxLength":240}}},"local":{"type":"array","maxItems":40,"items":{"type":"object","additionalProperties":false,"required":["id"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/id"}}}},"probes":{"type":"array","maxItems":40,"items":{"type":"object","additionalProperties":false,"required":["id","targets"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/id"},"targets":{"type":"array","maxItems":500,"items":{"type":"string","maxLength":240}}}}}}}}}}}}}}};const schema76 = {"type":"string","pattern":"^ch[0-9]{2}$"};const schema81 = {"type":"string","pattern":"^ch[0-9]{2}\\.[a-z0-9]+(?:-[a-z0-9]+)*$"};const schema83 = {"type":"integer","minimum":1,"maximum":600};const schema51 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/source/program.schema.json","type":"object","additionalProperties":false,"required":["apiVersion","id","title","label","platform","status","summary"],"properties":{"apiVersion":{"$ref":"../common.schema.json#/$defs/apiVersion"},"id":{"$ref":"../common.schema.json#/$defs/id"},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"label":{"$ref":"../common.schema.json#/$defs/shortText","maxLength":32,"type":"string"},"tagline":{"$ref":"../common.schema.json#/$defs/shortText"},"summary":{"$ref":"../common.schema.json#/$defs/text","maxLength":400,"type":"string"},"platform":{"type":"object","additionalProperties":false,"required":["family","version","label"],"properties":{"family":{"$ref":"../common.schema.json#/$defs/id"},"version":{"type":"string","pattern":"^[0-9]+(?:\\.[0-9]+)?$"},"label":{"$ref":"../common.schema.json#/$defs/shortText","maxLength":24,"type":"string"}}},"status":{"enum":["active","planned"]},"stages":{"type":"array","maxItems":12,"items":{"type":"object","additionalProperties":false,"required":["title","chapters"],"properties":{"title":{"$ref":"../common.schema.json#/$defs/shortText"},"chapters":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"integer","minimum":1,"maximum":99}},"text":{"$ref":"../common.schema.json#/$defs/text","maxLength":300,"type":"string"}}}},"variants":{"type":"array","maxItems":6,"items":{"type":"object","additionalProperties":false,"required":["id","label"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/id"},"label":{"$ref":"../common.schema.json#/$defs/shortText"},"icon":{"enum":["school","house","server","laptop","cloud"]},"default":{"type":"boolean"}}}},"readerVariables":{"type":"array","maxItems":12,"items":{"type":"object","additionalProperties":false,"required":["key","label"],"properties":{"key":{"$ref":"../common.schema.json#/$defs/variableKey"},"label":{"$ref":"../common.schema.json#/$defs/shortText"},"hint":{"$ref":"../common.schema.json#/$defs/shortText"},"example":{"type":"string","maxLength":64},"pattern":{"enum":["ipv4","hostname","username","text"]}}}},"lab":{"type":"boolean"},"labGuide":{"type":"string","pattern":"^ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*$"},"theme":{"$ref":"theme.schema.json"},"showcase":{"type":"object","additionalProperties":false,"required":["art"],"properties":{"art":{"enum":["automation","terminal"]},"tone":{"enum":["purple","teal","coral","pink","blue","green","amber","gray"]},"highlights":{"type":"array","maxItems":6,"items":{"$ref":"../common.schema.json#/$defs/shortText","maxLength":28,"type":"string"}},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"label":{"$ref":"../common.schema.json#/$defs/shortText","maxLength":24,"type":"string"},"summary":{"$ref":"../common.schema.json#/$defs/text","maxLength":400,"type":"string"}}},"seoTitle":{"$ref":"../common.schema.json#/$defs/seoTitle"},"seoDescription":{"$ref":"../common.schema.json#/$defs/seoDescription"},"keywords":{"type":"array","maxItems":24,"items":{"$ref":"../common.schema.json#/$defs/shortText"}},"certifications":{"type":"array","maxItems":4,"items":{"type":"object","additionalProperties":false,"required":["name","code"],"properties":{"name":{"$ref":"../common.schema.json#/$defs/shortText"},"code":{"type":"string","pattern":"^[A-Z]{2,4}[0-9]{2,4}$"},"url":{"type":"string","pattern":"^https://"}}}}}};const schema60 = {"type":"string","pattern":"^[A-Z][A-Z0-9_]{1,31}$"};const pattern27 = new RegExp("^[A-Z][A-Z0-9_]{1,31}$", "u");const pattern28 = new RegExp("^ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*$", "u");const pattern32 = new RegExp("^[A-Z]{2,4}[0-9]{2,4}$", "u");const pattern33 = new RegExp("^https://", "u");const schema62 = {"$ref":"#/$defs/text","maxLength":75,"type":"string"};function validate44(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate44.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate44.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate44.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate44.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate44.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 75){validate44.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 75},message:"must NOT have more than 75 characters"}];return false;}}else {validate44.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate44.errors = vErrors;return errors === 0;}validate44.evaluated = {"dynamicProps":false,"dynamicItems":false};const schema64 = {"$ref":"#/$defs/text","maxLength":170,"type":"string"};function validate46(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate46.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate46.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate46.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate46.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate46.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 170){validate46.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 170},message:"must NOT have more than 170 characters"}];return false;}}else {validate46.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate46.errors = vErrors;return errors === 0;}validate46.evaluated = {"dynamicProps":false,"dynamicItems":false};function validate30(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/source/program.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate30.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((((((data.apiVersion === undefined) && (missing0 = "apiVersion")) || ((data.id === undefined) && (missing0 = "id"))) || ((data.title === undefined) && (missing0 = "title"))) || ((data.label === undefined) && (missing0 = "label"))) || ((data.platform === undefined) && (missing0 = "platform"))) || ((data.status === undefined) && (missing0 = "status"))) || ((data.summary === undefined) && (missing0 = "summary"))){validate30.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema51.properties, key0))){validate30.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.apiVersion !== undefined){const _errs2 = errors;if(1 !== data.apiVersion){validate30.errors = [{instancePath:instancePath+"/apiVersion",schemaPath:"../common.schema.json#/$defs/apiVersion/const",keyword:"const",params:{allowedValue: 1},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.id !== undefined){let data1 = data.id;const _errs4 = errors;const _errs5 = errors;if(errors === _errs5){if(typeof data1 === "string"){if(func2(data1) > 64){validate30.errors = [{instancePath:instancePath+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data1)){validate30.errors = [{instancePath:instancePath+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate30.errors = [{instancePath:instancePath+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.title !== undefined){const _errs7 = errors;if(!(validate31(data.title, {instancePath:instancePath+"/title",parentData:data,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.label !== undefined){let data3 = data.label;const _errs8 = errors;if(!(validate31(data3, {instancePath:instancePath+"/label",parentData:data,parentDataProperty:"label",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}if(errors === _errs8){if(typeof data3 === "string"){if(func2(data3) > 32){validate30.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/maxLength",keyword:"maxLength",params:{limit: 32},message:"must NOT have more than 32 characters"}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs8 === errors;}else {var valid0 = true;}if(valid0){if(data.tagline !== undefined){const _errs10 = errors;if(!(validate31(data.tagline, {instancePath:instancePath+"/tagline",parentData:data,parentDataProperty:"tagline",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}var valid0 = _errs10 === errors;}else {var valid0 = true;}if(valid0){if(data.summary !== undefined){let data5 = data.summary;const _errs11 = errors;const _errs12 = errors;const _errs14 = errors;const _errs15 = errors;if(typeof data5 === "string"){if(!pattern5.test(data5)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid4 = _errs15 === errors;if(valid4){validate30.errors = [{instancePath:instancePath+"/summary",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs14;if(vErrors !== null){if(_errs14){vErrors.length = _errs14;}else {vErrors = null;}}}if(errors === _errs12){if(typeof data5 === "string"){if(func2(data5) > 2000){validate30.errors = [{instancePath:instancePath+"/summary",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data5) < 1){validate30.errors = [{instancePath:instancePath+"/summary",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate30.errors = [{instancePath:instancePath+"/summary",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === _errs11){if(typeof data5 === "string"){if(func2(data5) > 400){validate30.errors = [{instancePath:instancePath+"/summary",schemaPath:"#/properties/summary/maxLength",keyword:"maxLength",params:{limit: 400},message:"must NOT have more than 400 characters"}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/summary",schemaPath:"#/properties/summary/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs11 === errors;}else {var valid0 = true;}if(valid0){if(data.platform !== undefined){let data6 = data.platform;const _errs17 = errors;if(errors === _errs17){if(data6 && typeof data6 == "object" && !Array.isArray(data6)){let missing1;if((((data6.family === undefined) && (missing1 = "family")) || ((data6.version === undefined) && (missing1 = "version"))) || ((data6.label === undefined) && (missing1 = "label"))){validate30.errors = [{instancePath:instancePath+"/platform",schemaPath:"#/properties/platform/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs19 = errors;for(const key1 in data6){if(!(((key1 === "family") || (key1 === "version")) || (key1 === "label"))){validate30.errors = [{instancePath:instancePath+"/platform",schemaPath:"#/properties/platform/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs19 === errors){if(data6.family !== undefined){let data7 = data6.family;const _errs20 = errors;const _errs21 = errors;if(errors === _errs21){if(typeof data7 === "string"){if(func2(data7) > 64){validate30.errors = [{instancePath:instancePath+"/platform/family",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data7)){validate30.errors = [{instancePath:instancePath+"/platform/family",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate30.errors = [{instancePath:instancePath+"/platform/family",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs20 === errors;}else {var valid5 = true;}if(valid5){if(data6.version !== undefined){let data8 = data6.version;const _errs23 = errors;if(errors === _errs23){if(typeof data8 === "string"){if(!pattern24.test(data8)){validate30.errors = [{instancePath:instancePath+"/platform/version",schemaPath:"#/properties/platform/properties/version/pattern",keyword:"pattern",params:{pattern: "^[0-9]+(?:\\.[0-9]+)?$"},message:"must match pattern \""+"^[0-9]+(?:\\.[0-9]+)?$"+"\""}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/platform/version",schemaPath:"#/properties/platform/properties/version/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs23 === errors;}else {var valid5 = true;}if(valid5){if(data6.label !== undefined){let data9 = data6.label;const _errs25 = errors;if(!(validate31(data9, {instancePath:instancePath+"/platform/label",parentData:data6,parentDataProperty:"label",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}if(errors === _errs25){if(typeof data9 === "string"){if(func2(data9) > 24){validate30.errors = [{instancePath:instancePath+"/platform/label",schemaPath:"#/properties/platform/properties/label/maxLength",keyword:"maxLength",params:{limit: 24},message:"must NOT have more than 24 characters"}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/platform/label",schemaPath:"#/properties/platform/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs25 === errors;}else {var valid5 = true;}}}}}}else {validate30.errors = [{instancePath:instancePath+"/platform",schemaPath:"#/properties/platform/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs17 === errors;}else {var valid0 = true;}if(valid0){if(data.status !== undefined){let data10 = data.status;const _errs27 = errors;if(!((data10 === "active") || (data10 === "planned"))){validate30.errors = [{instancePath:instancePath+"/status",schemaPath:"#/properties/status/enum",keyword:"enum",params:{allowedValues: schema51.properties.status.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs27 === errors;}else {var valid0 = true;}if(valid0){if(data.stages !== undefined){let data11 = data.stages;const _errs28 = errors;if(errors === _errs28){if(Array.isArray(data11)){if(data11.length > 12){validate30.errors = [{instancePath:instancePath+"/stages",schemaPath:"#/properties/stages/maxItems",keyword:"maxItems",params:{limit: 12},message:"must NOT have more than 12 items"}];return false;}else {var valid7 = true;const len0 = data11.length;for(let i0=0; i0 99 || isNaN(data15)){validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/chapters/" + i1,schemaPath:"#/properties/stages/items/properties/chapters/items/maximum",keyword:"maximum",params:{comparison: "<=", limit: 99},message:"must be <= 99"}];return false;}else {if(data15 < 1 || isNaN(data15)){validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/chapters/" + i1,schemaPath:"#/properties/stages/items/properties/chapters/items/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}}var valid9 = _errs36 === errors;if(!valid9){break;}}if(valid9){let i2 = data14.length;let j0;if(i2 > 1){const indices0 = {};for(;i2--;){let item0 = data14[i2];if(!(((typeof item0 == "number") && (!(item0 % 1) && !isNaN(item0))) && (isFinite(item0)))){continue;}if(typeof indices0[item0] == "number"){j0 = indices0[item0];validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/chapters",schemaPath:"#/properties/stages/items/properties/chapters/uniqueItems",keyword:"uniqueItems",params:{i: i2, j: j0},message:"must NOT have duplicate items (items ## "+j0+" and "+i2+" are identical)"}];return false;break;}indices0[item0] = i2;}}}}}else {validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/chapters",schemaPath:"#/properties/stages/items/properties/chapters/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid8 = _errs34 === errors;}else {var valid8 = true;}if(valid8){if(data12.text !== undefined){let data16 = data12.text;const _errs38 = errors;const _errs39 = errors;const _errs41 = errors;const _errs42 = errors;if(typeof data16 === "string"){if(!pattern5.test(data16)){const err1 = {};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}var valid12 = _errs42 === errors;if(valid12){validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs41;if(vErrors !== null){if(_errs41){vErrors.length = _errs41;}else {vErrors = null;}}}if(errors === _errs39){if(typeof data16 === "string"){if(func2(data16) > 2000){validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data16) < 1){validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === _errs38){if(typeof data16 === "string"){if(func2(data16) > 300){validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/text",schemaPath:"#/properties/stages/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/stages/" + i0+"/text",schemaPath:"#/properties/stages/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid8 = _errs38 === errors;}else {var valid8 = true;}}}}}}else {validate30.errors = [{instancePath:instancePath+"/stages/" + i0,schemaPath:"#/properties/stages/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid7 = _errs30 === errors;if(!valid7){break;}}}}else {validate30.errors = [{instancePath:instancePath+"/stages",schemaPath:"#/properties/stages/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs28 === errors;}else {var valid0 = true;}if(valid0){if(data.variants !== undefined){let data17 = data.variants;const _errs44 = errors;if(errors === _errs44){if(Array.isArray(data17)){if(data17.length > 6){validate30.errors = [{instancePath:instancePath+"/variants",schemaPath:"#/properties/variants/maxItems",keyword:"maxItems",params:{limit: 6},message:"must NOT have more than 6 items"}];return false;}else {var valid13 = true;const len2 = data17.length;for(let i3=0; i3 64){validate30.errors = [{instancePath:instancePath+"/variants/" + i3+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data19)){validate30.errors = [{instancePath:instancePath+"/variants/" + i3+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate30.errors = [{instancePath:instancePath+"/variants/" + i3+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid14 = _errs49 === errors;}else {var valid14 = true;}if(valid14){if(data18.label !== undefined){const _errs52 = errors;if(!(validate31(data18.label, {instancePath:instancePath+"/variants/" + i3+"/label",parentData:data18,parentDataProperty:"label",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}var valid14 = _errs52 === errors;}else {var valid14 = true;}if(valid14){if(data18.icon !== undefined){let data21 = data18.icon;const _errs53 = errors;if(!(((((data21 === "school") || (data21 === "house")) || (data21 === "server")) || (data21 === "laptop")) || (data21 === "cloud"))){validate30.errors = [{instancePath:instancePath+"/variants/" + i3+"/icon",schemaPath:"#/properties/variants/items/properties/icon/enum",keyword:"enum",params:{allowedValues: schema51.properties.variants.items.properties.icon.enum},message:"must be equal to one of the allowed values"}];return false;}var valid14 = _errs53 === errors;}else {var valid14 = true;}if(valid14){if(data18.default !== undefined){const _errs54 = errors;if(typeof data18.default !== "boolean"){validate30.errors = [{instancePath:instancePath+"/variants/" + i3+"/default",schemaPath:"#/properties/variants/items/properties/default/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid14 = _errs54 === errors;}else {var valid14 = true;}}}}}}}else {validate30.errors = [{instancePath:instancePath+"/variants/" + i3,schemaPath:"#/properties/variants/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid13 = _errs46 === errors;if(!valid13){break;}}}}else {validate30.errors = [{instancePath:instancePath+"/variants",schemaPath:"#/properties/variants/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs44 === errors;}else {var valid0 = true;}if(valid0){if(data.readerVariables !== undefined){let data23 = data.readerVariables;const _errs56 = errors;if(errors === _errs56){if(Array.isArray(data23)){if(data23.length > 12){validate30.errors = [{instancePath:instancePath+"/readerVariables",schemaPath:"#/properties/readerVariables/maxItems",keyword:"maxItems",params:{limit: 12},message:"must NOT have more than 12 items"}];return false;}else {var valid16 = true;const len3 = data23.length;for(let i4=0; i4 64){validate30.errors = [{instancePath:instancePath+"/readerVariables/" + i4+"/example",schemaPath:"#/properties/readerVariables/items/properties/example/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/readerVariables/" + i4+"/example",schemaPath:"#/properties/readerVariables/items/properties/example/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid17 = _errs66 === errors;}else {var valid17 = true;}if(valid17){if(data24.pattern !== undefined){let data29 = data24.pattern;const _errs68 = errors;if(!((((data29 === "ipv4") || (data29 === "hostname")) || (data29 === "username")) || (data29 === "text"))){validate30.errors = [{instancePath:instancePath+"/readerVariables/" + i4+"/pattern",schemaPath:"#/properties/readerVariables/items/properties/pattern/enum",keyword:"enum",params:{allowedValues: schema51.properties.readerVariables.items.properties.pattern.enum},message:"must be equal to one of the allowed values"}];return false;}var valid17 = _errs68 === errors;}else {var valid17 = true;}}}}}}}}else {validate30.errors = [{instancePath:instancePath+"/readerVariables/" + i4,schemaPath:"#/properties/readerVariables/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid16 = _errs58 === errors;if(!valid16){break;}}}}else {validate30.errors = [{instancePath:instancePath+"/readerVariables",schemaPath:"#/properties/readerVariables/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs56 === errors;}else {var valid0 = true;}if(valid0){if(data.lab !== undefined){const _errs69 = errors;if(typeof data.lab !== "boolean"){validate30.errors = [{instancePath:instancePath+"/lab",schemaPath:"#/properties/lab/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs69 === errors;}else {var valid0 = true;}if(valid0){if(data.labGuide !== undefined){let data31 = data.labGuide;const _errs71 = errors;if(errors === _errs71){if(typeof data31 === "string"){if(!pattern28.test(data31)){validate30.errors = [{instancePath:instancePath+"/labGuide",schemaPath:"#/properties/labGuide/pattern",keyword:"pattern",params:{pattern: "^ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/labGuide",schemaPath:"#/properties/labGuide/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs71 === errors;}else {var valid0 = true;}if(valid0){if(data.theme !== undefined){const _errs73 = errors;if(!(validate25(data.theme, {instancePath:instancePath+"/theme",parentData:data,parentDataProperty:"theme",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate25.errors : vErrors.concat(validate25.errors);errors = vErrors.length;}var valid0 = _errs73 === errors;}else {var valid0 = true;}if(valid0){if(data.showcase !== undefined){let data33 = data.showcase;const _errs74 = errors;if(errors === _errs74){if(data33 && typeof data33 == "object" && !Array.isArray(data33)){let missing5;if((data33.art === undefined) && (missing5 = "art")){validate30.errors = [{instancePath:instancePath+"/showcase",schemaPath:"#/properties/showcase/required",keyword:"required",params:{missingProperty: missing5},message:"must have required property '"+missing5+"'"}];return false;}else {const _errs76 = errors;for(const key5 in data33){if(!((((((key5 === "art") || (key5 === "tone")) || (key5 === "highlights")) || (key5 === "title")) || (key5 === "label")) || (key5 === "summary"))){validate30.errors = [{instancePath:instancePath+"/showcase",schemaPath:"#/properties/showcase/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs76 === errors){if(data33.art !== undefined){let data34 = data33.art;const _errs77 = errors;if(!((data34 === "automation") || (data34 === "terminal"))){validate30.errors = [{instancePath:instancePath+"/showcase/art",schemaPath:"#/properties/showcase/properties/art/enum",keyword:"enum",params:{allowedValues: schema51.properties.showcase.properties.art.enum},message:"must be equal to one of the allowed values"}];return false;}var valid19 = _errs77 === errors;}else {var valid19 = true;}if(valid19){if(data33.tone !== undefined){let data35 = data33.tone;const _errs78 = errors;if(!((((((((data35 === "purple") || (data35 === "teal")) || (data35 === "coral")) || (data35 === "pink")) || (data35 === "blue")) || (data35 === "green")) || (data35 === "amber")) || (data35 === "gray"))){validate30.errors = [{instancePath:instancePath+"/showcase/tone",schemaPath:"#/properties/showcase/properties/tone/enum",keyword:"enum",params:{allowedValues: schema51.properties.showcase.properties.tone.enum},message:"must be equal to one of the allowed values"}];return false;}var valid19 = _errs78 === errors;}else {var valid19 = true;}if(valid19){if(data33.highlights !== undefined){let data36 = data33.highlights;const _errs79 = errors;if(errors === _errs79){if(Array.isArray(data36)){if(data36.length > 6){validate30.errors = [{instancePath:instancePath+"/showcase/highlights",schemaPath:"#/properties/showcase/properties/highlights/maxItems",keyword:"maxItems",params:{limit: 6},message:"must NOT have more than 6 items"}];return false;}else {var valid20 = true;const len4 = data36.length;for(let i5=0; i5 28){validate30.errors = [{instancePath:instancePath+"/showcase/highlights/" + i5,schemaPath:"#/properties/showcase/properties/highlights/items/maxLength",keyword:"maxLength",params:{limit: 28},message:"must NOT have more than 28 characters"}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/showcase/highlights/" + i5,schemaPath:"#/properties/showcase/properties/highlights/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid20 = _errs81 === errors;if(!valid20){break;}}}}else {validate30.errors = [{instancePath:instancePath+"/showcase/highlights",schemaPath:"#/properties/showcase/properties/highlights/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid19 = _errs79 === errors;}else {var valid19 = true;}if(valid19){if(data33.title !== undefined){const _errs83 = errors;if(!(validate31(data33.title, {instancePath:instancePath+"/showcase/title",parentData:data33,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}var valid19 = _errs83 === errors;}else {var valid19 = true;}if(valid19){if(data33.label !== undefined){let data39 = data33.label;const _errs84 = errors;if(!(validate31(data39, {instancePath:instancePath+"/showcase/label",parentData:data33,parentDataProperty:"label",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate31.errors : vErrors.concat(validate31.errors);errors = vErrors.length;}if(errors === _errs84){if(typeof data39 === "string"){if(func2(data39) > 24){validate30.errors = [{instancePath:instancePath+"/showcase/label",schemaPath:"#/properties/showcase/properties/label/maxLength",keyword:"maxLength",params:{limit: 24},message:"must NOT have more than 24 characters"}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/showcase/label",schemaPath:"#/properties/showcase/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs84 === errors;}else {var valid19 = true;}if(valid19){if(data33.summary !== undefined){let data40 = data33.summary;const _errs86 = errors;const _errs87 = errors;const _errs89 = errors;const _errs90 = errors;if(typeof data40 === "string"){if(!pattern5.test(data40)){const err2 = {};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}var valid22 = _errs90 === errors;if(valid22){validate30.errors = [{instancePath:instancePath+"/showcase/summary",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs89;if(vErrors !== null){if(_errs89){vErrors.length = _errs89;}else {vErrors = null;}}}if(errors === _errs87){if(typeof data40 === "string"){if(func2(data40) > 2000){validate30.errors = [{instancePath:instancePath+"/showcase/summary",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data40) < 1){validate30.errors = [{instancePath:instancePath+"/showcase/summary",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate30.errors = [{instancePath:instancePath+"/showcase/summary",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === _errs86){if(typeof data40 === "string"){if(func2(data40) > 400){validate30.errors = [{instancePath:instancePath+"/showcase/summary",schemaPath:"#/properties/showcase/properties/summary/maxLength",keyword:"maxLength",params:{limit: 400},message:"must NOT have more than 400 characters"}];return false;}}else {validate30.errors = [{instancePath:instancePath+"/showcase/summary",schemaPath:"#/properties/showcase/properties/summary/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs86 === errors;}else {var valid19 = true;}}}}}}}}}else {validate30.errors = [{instancePath:instancePath+"/showcase",schemaPath:"#/properties/showcase/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs74 === errors;}else {var valid0 = true;}if(valid0){if(data.seoTitle !== undefined){const _errs92 = errors;if(!(validate44(data.seoTitle, {instancePath:instancePath+"/seoTitle",parentData:data,parentDataProperty:"seoTitle",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate44.errors : vErrors.concat(validate44.errors);errors = vErrors.length;}var valid0 = _errs92 === errors;}else {var valid0 = true;}if(valid0){if(data.seoDescription !== undefined){const _errs93 = errors;if(!(validate46(data.seoDescription, {instancePath:instancePath+"/seoDescription",parentData:data,parentDataProperty:"seoDescription",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate46.errors : vErrors.concat(validate46.errors);errors = vErrors.length;}var valid0 = _errs93 === errors;}else {var valid0 = true;}if(valid0){if(data.keywords !== undefined){let data43 = data.keywords;const _errs94 = errors;if(errors === _errs94){if(Array.isArray(data43)){if(data43.length > 24){validate30.errors = [{instancePath:instancePath+"/keywords",schemaPath:"#/properties/keywords/maxItems",keyword:"maxItems",params:{limit: 24},message:"must NOT have more than 24 items"}];return false;}else {var valid23 = true;const len5 = data43.length;for(let i6=0; i6 4){validate30.errors = [{instancePath:instancePath+"/certifications",schemaPath:"#/properties/certifications/maxItems",keyword:"maxItems",params:{limit: 4},message:"must NOT have more than 4 items"}];return false;}else {var valid24 = true;const len6 = data45.length;for(let i7=0; i7 2000){validate61.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate61.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate61.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate61.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate61.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate61.errors = vErrors;return errors === 0;}validate61.evaluated = {"dynamicProps":false,"dynamicItems":false};function validate67(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate67.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate67.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate67.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate67.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate67.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 75){validate67.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 75},message:"must NOT have more than 75 characters"}];return false;}}else {validate67.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate67.errors = vErrors;return errors === 0;}validate67.evaluated = {"dynamicProps":false,"dynamicItems":false};function validate70(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate70.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate70.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate70.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate70.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate70.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 170){validate70.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 170},message:"must NOT have more than 170 characters"}];return false;}}else {validate70.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate70.errors = vErrors;return errors === 0;}validate70.evaluated = {"dynamicProps":false,"dynamicItems":false};const schema95 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/source/objectives.schema.json","type":"array","items":{"type":"object","additionalProperties":false,"required":["id","chapter","lessons","labs","challenges"],"properties":{"id":{"type":"string","pattern":"^ch[0-9]{2}\\.[a-z0-9]+(?:-[a-z0-9]+)*$"},"chapter":{"$ref":"../common.schema.json#/$defs/chapterId"},"lessons":{"type":"array","items":{"$ref":"#/$defs/pageRef"}},"labs":{"type":"array","items":{"$ref":"#/$defs/pageRef"}},"challenges":{"type":"array","items":{"$ref":"../common.schema.json#/$defs/id"}}}},"$defs":{"pageRef":{"type":"string","pattern":"^ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*$"}}};const schema97 = {"type":"string","pattern":"^ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*$"};const pattern45 = new RegExp("^ch[0-9]{2}\\.[a-z0-9]+(?:-[a-z0-9]+)*$", "u");const pattern41 = new RegExp("^ch[0-9]{2}$", "u");function validate72(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/source/objectives.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate72.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(Array.isArray(data)){var valid0 = true;const len0 = data.length;for(let i0=0; i0 64){validate72.errors = [{instancePath:instancePath+"/" + i0+"/challenges/" + i3,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data8)){validate72.errors = [{instancePath:instancePath+"/" + i0+"/challenges/" + i3,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate72.errors = [{instancePath:instancePath+"/" + i0+"/challenges/" + i3,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs21 === errors;if(!valid7){break;}}}else {validate72.errors = [{instancePath:instancePath+"/" + i0+"/challenges",schemaPath:"#/items/properties/challenges/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid1 = _errs19 === errors;}else {var valid1 = true;}}}}}}}}else {validate72.errors = [{instancePath:instancePath+"/" + i0,schemaPath:"#/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs1 === errors;if(!valid0){break;}}}else {validate72.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}validate72.errors = vErrors;return errors === 0;}validate72.evaluated = {"items":true,"dynamicProps":false,"dynamicItems":false};const pattern47 = new RegExp("^q-[a-z0-9]{6,32}$", "u");const pattern50 = new RegExp("^[a-f0-9]{1,16}$", "u");const pattern63 = new RegExp("^(?:ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*|home|details)$", "u");const pattern68 = new RegExp("^#/ch[0-9]{2}/[a-z0-9-]+$", "u");function validate59(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/bundle/manifest.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate59.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((((((data.apiVersion === undefined) && (missing0 = "apiVersion")) || ((data.program === undefined) && (missing0 = "program"))) || ((data.chapters === undefined) && (missing0 = "chapters"))) || ((data.objectives === undefined) && (missing0 = "objectives"))) || ((data.pages === undefined) && (missing0 = "pages"))) || ((data.search === undefined) && (missing0 = "search"))){validate59.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((((((((key0 === "apiVersion") || (key0 === "program")) || (key0 === "chapters")) || (key0 === "objectives")) || (key0 === "pages")) || (key0 === "search")) || (key0 === "legacy")) || (key0 === "labReports"))){validate59.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.apiVersion !== undefined){const _errs2 = errors;if(1 !== data.apiVersion){validate59.errors = [{instancePath:instancePath+"/apiVersion",schemaPath:"../common.schema.json#/$defs/apiVersion/const",keyword:"const",params:{allowedValue: 1},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.program !== undefined){const _errs4 = errors;if(!(validate30(data.program, {instancePath:instancePath+"/program",parentData:data,parentDataProperty:"program",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate30.errors : vErrors.concat(validate30.errors);errors = vErrors.length;}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.chapters !== undefined){let data2 = data.chapters;const _errs5 = errors;if(errors === _errs5){if(Array.isArray(data2)){if(data2.length > 99){validate59.errors = [{instancePath:instancePath+"/chapters",schemaPath:"#/properties/chapters/maxItems",keyword:"maxItems",params:{limit: 99},message:"must NOT have more than 99 items"}];return false;}else {var valid2 = true;const len0 = data2.length;for(let i0=0; i0 99 || isNaN(data5)){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/number",schemaPath:"#/properties/chapters/items/properties/number/maximum",keyword:"maximum",params:{comparison: "<=", limit: 99},message:"must be <= 99"}];return false;}else {if(data5 < 1 || isNaN(data5)){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/number",schemaPath:"#/properties/chapters/items/properties/number/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}}var valid3 = _errs13 === errors;}else {var valid3 = true;}if(valid3){if(data3.title !== undefined){const _errs15 = errors;if(!(validate61(data3.title, {instancePath:instancePath+"/chapters/" + i0+"/title",parentData:data3,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate61.errors : vErrors.concat(validate61.errors);errors = vErrors.length;}var valid3 = _errs15 === errors;}else {var valid3 = true;}if(valid3){if(data3.goal !== undefined){let data7 = data3.goal;const _errs16 = errors;const _errs17 = errors;const _errs19 = errors;const _errs20 = errors;if(typeof data7 === "string"){if(!pattern5.test(data7)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid6 = _errs20 === errors;if(valid6){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/goal",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs19;if(vErrors !== null){if(_errs19){vErrors.length = _errs19;}else {vErrors = null;}}}if(errors === _errs17){if(typeof data7 === "string"){if(func2(data7) > 2000){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/goal",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data7) < 1){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/goal",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/goal",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs16 === errors;}else {var valid3 = true;}if(valid3){if(data3.objectives !== undefined){let data8 = data3.objectives;const _errs21 = errors;if(errors === _errs21){if(Array.isArray(data8)){var valid7 = true;const len1 = data8.length;for(let i1=0; i1 2000){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/objectives/" + i1,schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data9) < 1){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/objectives/" + i1,schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/objectives/" + i1,schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs23 === errors;if(!valid7){break;}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/objectives",schemaPath:"#/properties/chapters/items/properties/objectives/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid3 = _errs21 === errors;}else {var valid3 = true;}if(valid3){if(data3.objectiveIds !== undefined){let data10 = data3.objectiveIds;const _errs28 = errors;if(errors === _errs28){if(Array.isArray(data10)){var valid10 = true;const len2 = data10.length;for(let i2=0; i2 60){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections",schemaPath:"#/properties/chapters/items/properties/sections/maxItems",keyword:"maxItems",params:{limit: 60},message:"must NOT have more than 60 items"}];return false;}else {var valid13 = true;const len4 = data16.length;for(let i4=0; i4 64){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/slug",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data18)){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/slug",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/slug",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid14 = _errs44 === errors;}else {var valid14 = true;}if(valid14){if(data17.title !== undefined){const _errs47 = errors;if(!(validate61(data17.title, {instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/title",parentData:data17,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate61.errors : vErrors.concat(validate61.errors);errors = vErrors.length;}var valid14 = _errs47 === errors;}else {var valid14 = true;}if(valid14){if(data17.kind !== undefined){let data20 = data17.kind;const _errs48 = errors;if(!(((((data20 === "lesson") || (data20 === "lab")) || (data20 === "quiz")) || (data20 === "summary")) || (data20 === "reference"))){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/kind",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/kind/enum",keyword:"enum",params:{allowedValues: schema74.properties.chapters.items.properties.sections.items.properties.kind.enum},message:"must be equal to one of the allowed values"}];return false;}var valid14 = _errs48 === errors;}else {var valid14 = true;}if(valid14){if(data17.minutes !== undefined){let data21 = data17.minutes;const _errs49 = errors;const _errs50 = errors;if(!(((typeof data21 == "number") && (!(data21 % 1) && !isNaN(data21))) && (isFinite(data21)))){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/minutes",schemaPath:"../common.schema.json#/$defs/minutes/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs50){if((typeof data21 == "number") && (isFinite(data21))){if(data21 > 600 || isNaN(data21)){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/minutes",schemaPath:"../common.schema.json#/$defs/minutes/maximum",keyword:"maximum",params:{comparison: "<=", limit: 600},message:"must be <= 600"}];return false;}else {if(data21 < 1 || isNaN(data21)){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/minutes",schemaPath:"../common.schema.json#/$defs/minutes/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}}var valid14 = _errs49 === errors;}else {var valid14 = true;}if(valid14){if(data17.activities !== undefined){let data22 = data17.activities;const _errs52 = errors;if(errors === _errs52){if(data22 && typeof data22 == "object" && !Array.isArray(data22)){const _errs54 = errors;for(const key3 in data22){if(!(((key3 === "quizzes") || (key3 === "tasks")) || (key3 === "practice"))){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs54 === errors){if(data22.quizzes !== undefined){let data23 = data22.quizzes;const _errs55 = errors;if(errors === _errs55){if(Array.isArray(data23)){var valid18 = true;const len5 = data23.length;for(let i5=0; i5 64){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/quizId",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data26)){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/quizId",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/quizId",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs62 === errors;}else {var valid19 = true;}if(valid19){if(data24.prompt !== undefined){let data27 = data24.prompt;const _errs65 = errors;const _errs66 = errors;const _errs68 = errors;const _errs69 = errors;if(typeof data27 === "string"){if(!pattern8.test(data27)){const err2 = {};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}var valid22 = _errs69 === errors;if(valid22){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/prompt",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs68;if(vErrors !== null){if(_errs68){vErrors.length = _errs68;}else {vErrors = null;}}}if(errors === _errs66){if(typeof data27 === "string"){if(func2(data27) > 4000){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/prompt",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data27) < 1){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/prompt",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/prompt",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs65 === errors;}else {var valid19 = true;}if(valid19){if(data24.revision !== undefined){let data28 = data24.revision;const _errs70 = errors;if(errors === _errs70){if(typeof data28 === "string"){if(!pattern50.test(data28)){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/revision",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/properties/quizzes/items/properties/revision/pattern",keyword:"pattern",params:{pattern: "^[a-f0-9]{1,16}$"},message:"must match pattern \""+"^[a-f0-9]{1,16}$"+"\""}];return false;}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5+"/revision",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/properties/quizzes/items/properties/revision/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs70 === errors;}else {var valid19 = true;}}}}}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes/" + i5,schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/properties/quizzes/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid18 = _errs57 === errors;if(!valid18){break;}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/quizzes",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/properties/quizzes/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid17 = _errs55 === errors;}else {var valid17 = true;}if(valid17){if(data22.tasks !== undefined){let data29 = data22.tasks;const _errs72 = errors;if(errors === _errs72){if(Array.isArray(data29)){var valid23 = true;const len6 = data29.length;for(let i6=0; i6 64){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks/" + i6+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data31)){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks/" + i6+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks/" + i6+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid24 = _errs77 === errors;}else {var valid24 = true;}if(valid24){if(data30.labId !== undefined){let data32 = data30.labId;const _errs80 = errors;const _errs81 = errors;if(errors === _errs81){if(typeof data32 === "string"){if(func2(data32) > 64){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks/" + i6+"/labId",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data32)){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks/" + i6+"/labId",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks/" + i6+"/labId",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid24 = _errs80 === errors;}else {var valid24 = true;}if(valid24){if(data30.title !== undefined){const _errs83 = errors;if(!(validate61(data30.title, {instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks/" + i6+"/title",parentData:data30,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate61.errors : vErrors.concat(validate61.errors);errors = vErrors.length;}var valid24 = _errs83 === errors;}else {var valid24 = true;}}}}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks/" + i6,schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/properties/tasks/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid23 = _errs74 === errors;if(!valid23){break;}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/tasks",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/properties/tasks/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid17 = _errs72 === errors;}else {var valid17 = true;}if(valid17){if(data22.practice !== undefined){let data34 = data22.practice;const _errs84 = errors;if(errors === _errs84){if(Array.isArray(data34)){var valid27 = true;const len7 = data34.length;for(let i7=0; i7 64){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/practice/" + i7+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data36)){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/practice/" + i7+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/practice/" + i7+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid28 = _errs89 === errors;}else {var valid28 = true;}if(valid28){if(data35.objective !== undefined){let data37 = data35.objective;const _errs92 = errors;const _errs93 = errors;if(errors === _errs93){if(typeof data37 === "string"){if(!pattern45.test(data37)){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/practice/" + i7+"/objective",schemaPath:"../common.schema.json#/$defs/objectiveId/pattern",keyword:"pattern",params:{pattern: "^ch[0-9]{2}\\.[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^ch[0-9]{2}\\.[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/practice/" + i7+"/objective",schemaPath:"../common.schema.json#/$defs/objectiveId/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid28 = _errs92 === errors;}else {var valid28 = true;}if(valid28){if(data35.title !== undefined){const _errs95 = errors;if(!(validate61(data35.title, {instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/practice/" + i7+"/title",parentData:data35,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate61.errors : vErrors.concat(validate61.errors);errors = vErrors.length;}var valid28 = _errs95 === errors;}else {var valid28 = true;}}}}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/practice/" + i7,schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/properties/practice/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid27 = _errs86 === errors;if(!valid27){break;}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities/practice",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/properties/practice/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid17 = _errs84 === errors;}else {var valid17 = true;}}}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/activities",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/activities/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid14 = _errs52 === errors;}else {var valid14 = true;}if(valid14){if(data17.seoTitle !== undefined){const _errs96 = errors;if(!(validate67(data17.seoTitle, {instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/seoTitle",parentData:data17,parentDataProperty:"seoTitle",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate67.errors : vErrors.concat(validate67.errors);errors = vErrors.length;}var valid14 = _errs96 === errors;}else {var valid14 = true;}if(valid14){if(data17.description !== undefined){let data40 = data17.description;const _errs97 = errors;const _errs98 = errors;const _errs100 = errors;const _errs101 = errors;if(typeof data40 === "string"){if(!pattern5.test(data40)){const err3 = {};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}var valid32 = _errs101 === errors;if(valid32){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/description",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs100;if(vErrors !== null){if(_errs100){vErrors.length = _errs100;}else {vErrors = null;}}}if(errors === _errs98){if(typeof data40 === "string"){if(func2(data40) > 2000){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/description",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data40) < 1){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/description",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/description",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === _errs97){if(typeof data40 === "string"){if(func2(data40) > 300){validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/description",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/description/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4+"/description",schemaPath:"#/properties/chapters/items/properties/sections/items/properties/description/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid14 = _errs97 === errors;}else {var valid14 = true;}}}}}}}}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections/" + i4,schemaPath:"#/properties/chapters/items/properties/sections/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid13 = _errs41 === errors;if(!valid13){break;}}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0+"/sections",schemaPath:"#/properties/chapters/items/properties/sections/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid3 = _errs39 === errors;}else {var valid3 = true;}if(valid3){if(data3.seoTitle !== undefined){const _errs103 = errors;if(!(validate67(data3.seoTitle, {instancePath:instancePath+"/chapters/" + i0+"/seoTitle",parentData:data3,parentDataProperty:"seoTitle",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate67.errors : vErrors.concat(validate67.errors);errors = vErrors.length;}var valid3 = _errs103 === errors;}else {var valid3 = true;}if(valid3){if(data3.seoDescription !== undefined){const _errs104 = errors;if(!(validate70(data3.seoDescription, {instancePath:instancePath+"/chapters/" + i0+"/seoDescription",parentData:data3,parentDataProperty:"seoDescription",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate70.errors : vErrors.concat(validate70.errors);errors = vErrors.length;}var valid3 = _errs104 === errors;}else {var valid3 = true;}}}}}}}}}}}}}}}else {validate59.errors = [{instancePath:instancePath+"/chapters/" + i0,schemaPath:"#/properties/chapters/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs7 === errors;if(!valid2){break;}}}}else {validate59.errors = [{instancePath:instancePath+"/chapters",schemaPath:"#/properties/chapters/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.objectives !== undefined){const _errs105 = errors;if(!(validate72(data.objectives, {instancePath:instancePath+"/objectives",parentData:data,parentDataProperty:"objectives",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate72.errors : vErrors.concat(validate72.errors);errors = vErrors.length;}var valid0 = _errs105 === errors;}else {var valid0 = true;}if(valid0){if(data.pages !== undefined){let data44 = data.pages;const _errs106 = errors;if(errors === _errs106){if(data44 && typeof data44 == "object" && !Array.isArray(data44)){for(const key7 in data44){const _errs108 = errors;if(typeof key7 === "string"){if(!pattern63.test(key7)){const err4 = {instancePath:instancePath+"/pages",schemaPath:"#/properties/pages/propertyNames/pattern",keyword:"pattern",params:{pattern: "^(?:ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*|home|details)$"},message:"must match pattern \""+"^(?:ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*|home|details)$"+"\"",propertyName:key7};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}var valid33 = _errs108 === errors;if(!valid33){const err5 = {instancePath:instancePath+"/pages",schemaPath:"#/properties/pages/propertyNames",keyword:"propertyNames",params:{propertyName: key7},message:"property name must be valid"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;validate59.errors = vErrors;return false;break;}}if(valid33){for(const key8 in data44){let data45 = data44[key8];const _errs110 = errors;const _errs111 = errors;if(errors === _errs111){if(typeof data45 === "string"){if(!pattern17.test(data45)){validate59.errors = [{instancePath:instancePath+"/pages/" + key8.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"site.schema.json#/$defs/hashedUrl/pattern",keyword:"pattern",params:{pattern: "^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"},message:"must match pattern \""+"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"+"\""}];return false;}}else {validate59.errors = [{instancePath:instancePath+"/pages/" + key8.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"site.schema.json#/$defs/hashedUrl/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid34 = _errs110 === errors;if(!valid34){break;}}}}else {validate59.errors = [{instancePath:instancePath+"/pages",schemaPath:"#/properties/pages/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs106 === errors;}else {var valid0 = true;}if(valid0){if(data.search !== undefined){let data46 = data.search;const _errs113 = errors;const _errs114 = errors;if(errors === _errs114){if(typeof data46 === "string"){if(!pattern17.test(data46)){validate59.errors = [{instancePath:instancePath+"/search",schemaPath:"site.schema.json#/$defs/hashedUrl/pattern",keyword:"pattern",params:{pattern: "^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"},message:"must match pattern \""+"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"+"\""}];return false;}}else {validate59.errors = [{instancePath:instancePath+"/search",schemaPath:"site.schema.json#/$defs/hashedUrl/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs113 === errors;}else {var valid0 = true;}if(valid0){if(data.legacy !== undefined){let data47 = data.legacy;const _errs116 = errors;const _errs117 = errors;if(errors === _errs117){if(typeof data47 === "string"){if(!pattern17.test(data47)){validate59.errors = [{instancePath:instancePath+"/legacy",schemaPath:"site.schema.json#/$defs/hashedUrl/pattern",keyword:"pattern",params:{pattern: "^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"},message:"must match pattern \""+"^(?:p/[a-z0-9-]+/)?(?:[a-z]+/)*[a-z0-9-]+\\.[a-f0-9]{8,64}\\.(?:json|sig)$"+"\""}];return false;}}else {validate59.errors = [{instancePath:instancePath+"/legacy",schemaPath:"site.schema.json#/$defs/hashedUrl/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs116 === errors;}else {var valid0 = true;}if(valid0){if(data.labReports !== undefined){let data48 = data.labReports;const _errs119 = errors;if(errors === _errs119){if(data48 && typeof data48 == "object" && !Array.isArray(data48)){let missing6;if((data48.exercises === undefined) && (missing6 = "exercises")){validate59.errors = [{instancePath:instancePath+"/labReports",schemaPath:"#/properties/labReports/required",keyword:"required",params:{missingProperty: missing6},message:"must have required property '"+missing6+"'"}];return false;}else {const _errs121 = errors;for(const key9 in data48){if(!(key9 === "exercises")){validate59.errors = [{instancePath:instancePath+"/labReports",schemaPath:"#/properties/labReports/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key9},message:"must NOT have additional properties"}];return false;break;}}if(_errs121 === errors){if(data48.exercises !== undefined){let data49 = data48.exercises;const _errs122 = errors;if(errors === _errs122){if(data49 && typeof data49 == "object" && !Array.isArray(data49)){if(Object.keys(data49).length > 500){validate59.errors = [{instancePath:instancePath+"/labReports/exercises",schemaPath:"#/properties/labReports/properties/exercises/maxProperties",keyword:"maxProperties",params:{limit: 500},message:"must NOT have more than 500 properties"}];return false;}else {for(const key10 in data49){const _errs124 = errors;const _errs125 = errors;if(errors === _errs125){if(typeof key10 === "string"){if(func2(key10) > 64){const err6 = {instancePath:instancePath+"/labReports/exercises",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters",propertyName:key10};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}else {if(!pattern18.test(key10)){const err7 = {instancePath:instancePath+"/labReports/exercises",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\"",propertyName:key10};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}}else {const err8 = {instancePath:instancePath+"/labReports/exercises",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string",propertyName:key10};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}var valid39 = _errs124 === errors;if(!valid39){const err9 = {instancePath:instancePath+"/labReports/exercises",schemaPath:"#/properties/labReports/properties/exercises/propertyNames",keyword:"propertyNames",params:{propertyName: key10},message:"property name must be valid"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;validate59.errors = vErrors;return false;break;}}if(valid39){for(const key11 in data49){let data50 = data49[key11];const _errs128 = errors;if(errors === _errs128){if(data50 && typeof data50 == "object" && !Array.isArray(data50)){let missing7;if((((data50.version === undefined) && (missing7 = "version")) || ((data50.lesson === undefined) && (missing7 = "lesson"))) || ((data50.checkpoints === undefined) && (missing7 = "checkpoints"))){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/required",keyword:"required",params:{missingProperty: missing7},message:"must have required property '"+missing7+"'"}];return false;}else {const _errs130 = errors;for(const key12 in data50){if(!(((key12 === "version") || (key12 === "lesson")) || (key12 === "checkpoints"))){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key12},message:"must NOT have additional properties"}];return false;break;}}if(_errs130 === errors){if(data50.version !== undefined){let data51 = data50.version;const _errs131 = errors;if(!(((typeof data51 == "number") && (!(data51 % 1) && !isNaN(data51))) && (isFinite(data51)))){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/version",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/version/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs131){if((typeof data51 == "number") && (isFinite(data51))){if(data51 < 1 || isNaN(data51)){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/version",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/version/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}var valid42 = _errs131 === errors;}else {var valid42 = true;}if(valid42){if(data50.lesson !== undefined){let data52 = data50.lesson;const _errs133 = errors;if(errors === _errs133){if(typeof data52 === "string"){if(!pattern68.test(data52)){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/lesson",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/lesson/pattern",keyword:"pattern",params:{pattern: "^#/ch[0-9]{2}/[a-z0-9-]+$"},message:"must match pattern \""+"^#/ch[0-9]{2}/[a-z0-9-]+$"+"\""}];return false;}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/lesson",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/lesson/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid42 = _errs133 === errors;}else {var valid42 = true;}if(valid42){if(data50.checkpoints !== undefined){let data53 = data50.checkpoints;const _errs135 = errors;if(errors === _errs135){if(data53 && typeof data53 == "object" && !Array.isArray(data53)){let missing8;if((data53.final === undefined) && (missing8 = "final")){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/required",keyword:"required",params:{missingProperty: missing8},message:"must have required property '"+missing8+"'"}];return false;}else {for(const key13 in data53){let data54 = data53[key13];const _errs138 = errors;if(errors === _errs138){if(data54 && typeof data54 == "object" && !Array.isArray(data54)){let missing9;if(((((data54.files === undefined) && (missing9 = "files")) || ((data54.groups === undefined) && (missing9 = "groups"))) || ((data54.local === undefined) && (missing9 = "local"))) || ((data54.probes === undefined) && (missing9 = "probes"))){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/required",keyword:"required",params:{missingProperty: missing9},message:"must have required property '"+missing9+"'"}];return false;}else {const _errs140 = errors;for(const key14 in data54){if(!((((key14 === "files") || (key14 === "groups")) || (key14 === "local")) || (key14 === "probes"))){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key14},message:"must NOT have additional properties"}];return false;break;}}if(_errs140 === errors){if(data54.files !== undefined){let data55 = data54.files;const _errs141 = errors;if(errors === _errs141){if(Array.isArray(data55)){if(data55.length > 500){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/files",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/files/maxItems",keyword:"maxItems",params:{limit: 500},message:"must NOT have more than 500 items"}];return false;}else {var valid45 = true;const len8 = data55.length;for(let i8=0; i8 240){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/files/" + i8,schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/files/items/maxLength",keyword:"maxLength",params:{limit: 240},message:"must NOT have more than 240 characters"}];return false;}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/files/" + i8,schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/files/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid45 = _errs143 === errors;if(!valid45){break;}}}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/files",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/files/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid44 = _errs141 === errors;}else {var valid44 = true;}if(valid44){if(data54.groups !== undefined){let data57 = data54.groups;const _errs145 = errors;if(errors === _errs145){if(data57 && typeof data57 == "object" && !Array.isArray(data57)){for(const key15 in data57){let data58 = data57[key15];const _errs148 = errors;if(errors === _errs148){if(Array.isArray(data58)){if(data58.length > 500){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/groups/" + key15.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/groups/additionalProperties/maxItems",keyword:"maxItems",params:{limit: 500},message:"must NOT have more than 500 items"}];return false;}else {var valid47 = true;const len9 = data58.length;for(let i9=0; i9 240){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/groups/" + key15.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i9,schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/groups/additionalProperties/items/maxLength",keyword:"maxLength",params:{limit: 240},message:"must NOT have more than 240 characters"}];return false;}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/groups/" + key15.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i9,schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/groups/additionalProperties/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid47 = _errs150 === errors;if(!valid47){break;}}}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/groups/" + key15.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/groups/additionalProperties/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid46 = _errs148 === errors;if(!valid46){break;}}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/groups",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/groups/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid44 = _errs145 === errors;}else {var valid44 = true;}if(valid44){if(data54.local !== undefined){let data60 = data54.local;const _errs152 = errors;if(errors === _errs152){if(Array.isArray(data60)){if(data60.length > 40){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/local",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/local/maxItems",keyword:"maxItems",params:{limit: 40},message:"must NOT have more than 40 items"}];return false;}else {var valid48 = true;const len10 = data60.length;for(let i10=0; i10 64){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/local/" + i10+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data62)){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/local/" + i10+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/local/" + i10+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}}}}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/local/" + i10,schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/local/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid48 = _errs154 === errors;if(!valid48){break;}}}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/local",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/local/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid44 = _errs152 === errors;}else {var valid44 = true;}if(valid44){if(data54.probes !== undefined){let data63 = data54.probes;const _errs160 = errors;if(errors === _errs160){if(Array.isArray(data63)){if(data63.length > 40){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/probes/maxItems",keyword:"maxItems",params:{limit: 40},message:"must NOT have more than 40 items"}];return false;}else {var valid51 = true;const len11 = data63.length;for(let i11=0; i11 64){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes/" + i11+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data65)){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes/" + i11+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes/" + i11+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid52 = _errs165 === errors;}else {var valid52 = true;}if(valid52){if(data64.targets !== undefined){let data66 = data64.targets;const _errs168 = errors;if(errors === _errs168){if(Array.isArray(data66)){if(data66.length > 500){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes/" + i11+"/targets",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/probes/items/properties/targets/maxItems",keyword:"maxItems",params:{limit: 500},message:"must NOT have more than 500 items"}];return false;}else {var valid54 = true;const len12 = data66.length;for(let i12=0; i12 240){validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes/" + i11+"/targets/" + i12,schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/probes/items/properties/targets/items/maxLength",keyword:"maxLength",params:{limit: 240},message:"must NOT have more than 240 characters"}];return false;}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes/" + i11+"/targets/" + i12,schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/probes/items/properties/targets/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid54 = _errs170 === errors;if(!valid54){break;}}}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes/" + i11+"/targets",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/probes/items/properties/targets/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid52 = _errs168 === errors;}else {var valid52 = true;}}}}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes/" + i11,schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/probes/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid51 = _errs162 === errors;if(!valid51){break;}}}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1")+"/probes",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/properties/probes/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid44 = _errs160 === errors;}else {var valid44 = true;}}}}}}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints/" + key13.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid43 = _errs138 === errors;if(!valid43){break;}}}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1")+"/checkpoints",schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/properties/checkpoints/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid42 = _errs135 === errors;}else {var valid42 = true;}}}}}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises/" + key11.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/labReports/properties/exercises/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid41 = _errs128 === errors;if(!valid41){break;}}}}}else {validate59.errors = [{instancePath:instancePath+"/labReports/exercises",schemaPath:"#/properties/labReports/properties/exercises/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}}}}}else {validate59.errors = [{instancePath:instancePath+"/labReports",schemaPath:"#/properties/labReports/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs119 === errors;}else {var valid0 = true;}}}}}}}}}}}else {validate59.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate59.errors = vErrors;return errors === 0;}validate59.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validatePage = validate74;const schema106 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/bundle/page.schema.json","type":"object","additionalProperties":false,"required":["apiVersion","key","title","kind","toc","data","tree"],"properties":{"apiVersion":{"$ref":"../common.schema.json#/$defs/apiVersion"},"key":{"type":"string","pattern":"^(?:ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*|home|details|site-home)$"},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"kind":{"enum":["lesson","lab","quiz","summary","reference","landing"]},"minutes":{"$ref":"../common.schema.json#/$defs/minutes"},"description":{"$ref":"../common.schema.json#/$defs/text"},"toc":{"type":"array","maxItems":200,"items":{"type":"object","additionalProperties":false,"required":["id","text","depth"],"properties":{"id":{"$ref":"#/$defs/anchorId"},"text":{"$ref":"../common.schema.json#/$defs/text"},"depth":{"enum":[2,3]}}}},"data":{"type":"object","propertyNames":{"$ref":"../common.schema.json#/$defs/dataRef"}},"tree":{"$ref":"#/$defs/children"},"eyebrow":{"$ref":"../common.schema.json#/$defs/shortText"},"seoTitle":{"$ref":"../common.schema.json#/$defs/seoTitle"}},"$defs":{"anchorId":{"type":"string","pattern":"^[a-z0-9_-][a-z0-9_-]{0,119}$"},"children":{"type":"array","maxItems":5000,"items":{"$ref":"#/$defs/node"}},"node":{"oneOf":[{"$ref":"#/$defs/text"},{"$ref":"#/$defs/element"},{"$ref":"#/$defs/code"},{"$ref":"#/$defs/tag"}]},"text":{"type":"object","additionalProperties":false,"required":["t","v"],"properties":{"t":{"const":"text"},"v":{"type":"string","maxLength":20000}}},"element":{"type":"object","additionalProperties":false,"required":["t","tag"],"properties":{"t":{"const":"el"},"tag":{"enum":["p","h2","h3","h4","ul","ol","li","blockquote","strong","em","del","code","a","br","hr","table","thead","tbody","tr","th","td","img"]},"attrs":{"type":"object","additionalProperties":false,"properties":{"id":{"$ref":"#/$defs/anchorId"},"href":{"$ref":"../common.schema.json#/$defs/url"},"src":{"type":"string","pattern":"^assets/[a-f0-9]{8,64}\\.(?:png|jpe?g|webp|avif|gif|svg)$"},"alt":{"type":"string","maxLength":300},"align":{"enum":["left","center","right"]},"start":{"type":"integer","minimum":0},"checked":{"type":"boolean"}}},"c":{"$ref":"#/$defs/children"}}},"code":{"type":"object","additionalProperties":false,"required":["t","lang","lines"],"properties":{"t":{"const":"code"},"lang":{"type":"string","pattern":"^[a-z0-9+#-]{1,24}$"},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"highlight":{"type":"array","items":{"type":"integer","minimum":1}},"lines":{"type":"array","maxItems":5000,"items":{"type":"array","maxItems":2000,"items":{"type":"object","additionalProperties":false,"required":["v"],"properties":{"v":{"type":"string","maxLength":20000},"l":{"$ref":"#/$defs/tokenColor"},"d":{"$ref":"#/$defs/tokenColor"},"i":{"const":true}}}}}}},"tokenColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"tag":{"type":"object","additionalProperties":false,"required":["t","name"],"properties":{"t":{"const":"tag"},"name":{"type":"string","enum":["admin-module-finder","annotated-yaml","assessment-timer","block-flow","build-roadmap","callout","card","cards","check-mode-sim","column","columns","command-vs-module","condition-playground","cron-builder","custom-fact-builder","data-explorer","diagram","error-decoder","fact-gathering","facts-explorer","feature-grid","fetch-layout","file-edit-simulator","file-module-chooser","flashcards","flow-map","fqcn-explorer","glob-tester","glossary","grep-tester","group-vars-resolver","handler-timeline","hero","host-pattern-tester","idempotency-demo","inventory-explorer","kbd","lab","lab-challenge","lab-finish","lab-network-map","lab-notes","lab-setup","lead","loop-unroller","magic-variables","mode-calculator","module-explorer","objectives","play-order","play-recap","practice","precedence-resolver","program-cards","project-tree","quiz","range-expander","reader-variables","readiness-checklist","reuse-simulator","reveal","role-anatomy","role-var-resolver","run-stages","shell-practice","snapshot-chain","starter-files","stat-explorer","step","steps","tab","tabs","task","task-outcome","template-playground","term","terminal-demo","variable-name-checker","variable-precedence","variable-substitution","variant","variant-group","variant-switch","vault-commands","verbosity","yaml-multiline"]},"attrs":{"type":"object","propertyNames":{"pattern":"^[a-z][a-zA-Z0-9]*$"},"additionalProperties":{"oneOf":[{"type":"string","maxLength":4000},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":50,"items":{"type":"string","maxLength":400}}]}},"c":{"$ref":"#/$defs/children"}}}}};const schema112 = {"type":"string","pattern":"^[a-z0-9_-][a-z0-9_-]{0,119}$"};const schema114 = {"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":64};const pattern71 = new RegExp("^(?:ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*|home|details|site-home)$", "u");const pattern74 = new RegExp("^[a-z0-9_-][a-z0-9_-]{0,119}$", "u");function validate75(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate75.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate75.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate75.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate75.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate75.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate75.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate75.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate75.errors = vErrors;return errors === 0;}validate75.evaluated = {"dynamicProps":false,"dynamicItems":false};const schema115 = {"type":"array","maxItems":5000,"items":{"$ref":"#/$defs/node"}};const schema116 = {"oneOf":[{"$ref":"#/$defs/text"},{"$ref":"#/$defs/element"},{"$ref":"#/$defs/code"},{"$ref":"#/$defs/tag"}]};const schema117 = {"type":"object","additionalProperties":false,"required":["t","v"],"properties":{"t":{"const":"text"},"v":{"type":"string","maxLength":20000}}};const schema118 = {"type":"object","additionalProperties":false,"required":["t","tag"],"properties":{"t":{"const":"el"},"tag":{"enum":["p","h2","h3","h4","ul","ol","li","blockquote","strong","em","del","code","a","br","hr","table","thead","tbody","tr","th","td","img"]},"attrs":{"type":"object","additionalProperties":false,"properties":{"id":{"$ref":"#/$defs/anchorId"},"href":{"$ref":"../common.schema.json#/$defs/url"},"src":{"type":"string","pattern":"^assets/[a-f0-9]{8,64}\\.(?:png|jpe?g|webp|avif|gif|svg)$"},"alt":{"type":"string","maxLength":300},"align":{"enum":["left","center","right"]},"start":{"type":"integer","minimum":0},"checked":{"type":"boolean"}}},"c":{"$ref":"#/$defs/children"}}};const pattern79 = new RegExp("^assets/[a-f0-9]{8,64}\\.(?:png|jpe?g|webp|avif|gif|svg)$", "u");const wrapper0 = {validate: validate77};function validate79(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate79.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.t === undefined) && (missing0 = "t")) || ((data.tag === undefined) && (missing0 = "tag"))){validate79.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((((key0 === "t") || (key0 === "tag")) || (key0 === "attrs")) || (key0 === "c"))){validate79.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.t !== undefined){const _errs2 = errors;if("el" !== data.t){validate79.errors = [{instancePath:instancePath+"/t",schemaPath:"#/properties/t/const",keyword:"const",params:{allowedValue: "el"},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.tag !== undefined){let data1 = data.tag;const _errs3 = errors;if(!((((((((((((((((((((((data1 === "p") || (data1 === "h2")) || (data1 === "h3")) || (data1 === "h4")) || (data1 === "ul")) || (data1 === "ol")) || (data1 === "li")) || (data1 === "blockquote")) || (data1 === "strong")) || (data1 === "em")) || (data1 === "del")) || (data1 === "code")) || (data1 === "a")) || (data1 === "br")) || (data1 === "hr")) || (data1 === "table")) || (data1 === "thead")) || (data1 === "tbody")) || (data1 === "tr")) || (data1 === "th")) || (data1 === "td")) || (data1 === "img"))){validate79.errors = [{instancePath:instancePath+"/tag",schemaPath:"#/properties/tag/enum",keyword:"enum",params:{allowedValues: schema118.properties.tag.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.attrs !== undefined){let data2 = data.attrs;const _errs4 = errors;if(errors === _errs4){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){const _errs6 = errors;for(const key1 in data2){if(!(((((((key1 === "id") || (key1 === "href")) || (key1 === "src")) || (key1 === "alt")) || (key1 === "align")) || (key1 === "start")) || (key1 === "checked"))){validate79.errors = [{instancePath:instancePath+"/attrs",schemaPath:"#/properties/attrs/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs6 === errors){if(data2.id !== undefined){let data3 = data2.id;const _errs7 = errors;const _errs8 = errors;if(errors === _errs8){if(typeof data3 === "string"){if(!pattern74.test(data3)){validate79.errors = [{instancePath:instancePath+"/attrs/id",schemaPath:"#/$defs/anchorId/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9_-][a-z0-9_-]{0,119}$"},message:"must match pattern \""+"^[a-z0-9_-][a-z0-9_-]{0,119}$"+"\""}];return false;}}else {validate79.errors = [{instancePath:instancePath+"/attrs/id",schemaPath:"#/$defs/anchorId/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs7 === errors;}else {var valid1 = true;}if(valid1){if(data2.href !== undefined){let data4 = data2.href;const _errs10 = errors;const _errs11 = errors;if(errors === _errs11){if(typeof data4 === "string"){if(func2(data4) > 2048){validate79.errors = [{instancePath:instancePath+"/attrs/href",schemaPath:"../common.schema.json#/$defs/url/maxLength",keyword:"maxLength",params:{limit: 2048},message:"must NOT have more than 2048 characters"}];return false;}else {if(!pattern7.test(data4)){validate79.errors = [{instancePath:instancePath+"/attrs/href",schemaPath:"../common.schema.json#/$defs/url/pattern",keyword:"pattern",params:{pattern: "^(?:#[/A-Za-z0-9._~%!$&'()*+,;=:@?#-]*|lab/[a-z0-9][a-z0-9._/-]*|https://[^\\s<>\"]+|mailto:[^\\s<>\"]+)$"},message:"must match pattern \""+"^(?:#[/A-Za-z0-9._~%!$&'()*+,;=:@?#-]*|lab/[a-z0-9][a-z0-9._/-]*|https://[^\\s<>\"]+|mailto:[^\\s<>\"]+)$"+"\""}];return false;}}}else {validate79.errors = [{instancePath:instancePath+"/attrs/href",schemaPath:"../common.schema.json#/$defs/url/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs10 === errors;}else {var valid1 = true;}if(valid1){if(data2.src !== undefined){let data5 = data2.src;const _errs13 = errors;if(errors === _errs13){if(typeof data5 === "string"){if(!pattern79.test(data5)){validate79.errors = [{instancePath:instancePath+"/attrs/src",schemaPath:"#/properties/attrs/properties/src/pattern",keyword:"pattern",params:{pattern: "^assets/[a-f0-9]{8,64}\\.(?:png|jpe?g|webp|avif|gif|svg)$"},message:"must match pattern \""+"^assets/[a-f0-9]{8,64}\\.(?:png|jpe?g|webp|avif|gif|svg)$"+"\""}];return false;}}else {validate79.errors = [{instancePath:instancePath+"/attrs/src",schemaPath:"#/properties/attrs/properties/src/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs13 === errors;}else {var valid1 = true;}if(valid1){if(data2.alt !== undefined){let data6 = data2.alt;const _errs15 = errors;if(errors === _errs15){if(typeof data6 === "string"){if(func2(data6) > 300){validate79.errors = [{instancePath:instancePath+"/attrs/alt",schemaPath:"#/properties/attrs/properties/alt/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}}else {validate79.errors = [{instancePath:instancePath+"/attrs/alt",schemaPath:"#/properties/attrs/properties/alt/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid1 = _errs15 === errors;}else {var valid1 = true;}if(valid1){if(data2.align !== undefined){let data7 = data2.align;const _errs17 = errors;if(!(((data7 === "left") || (data7 === "center")) || (data7 === "right"))){validate79.errors = [{instancePath:instancePath+"/attrs/align",schemaPath:"#/properties/attrs/properties/align/enum",keyword:"enum",params:{allowedValues: schema118.properties.attrs.properties.align.enum},message:"must be equal to one of the allowed values"}];return false;}var valid1 = _errs17 === errors;}else {var valid1 = true;}if(valid1){if(data2.start !== undefined){let data8 = data2.start;const _errs18 = errors;if(!(((typeof data8 == "number") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))){validate79.errors = [{instancePath:instancePath+"/attrs/start",schemaPath:"#/properties/attrs/properties/start/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs18){if((typeof data8 == "number") && (isFinite(data8))){if(data8 < 0 || isNaN(data8)){validate79.errors = [{instancePath:instancePath+"/attrs/start",schemaPath:"#/properties/attrs/properties/start/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"}];return false;}}}var valid1 = _errs18 === errors;}else {var valid1 = true;}if(valid1){if(data2.checked !== undefined){const _errs20 = errors;if(typeof data2.checked !== "boolean"){validate79.errors = [{instancePath:instancePath+"/attrs/checked",schemaPath:"#/properties/attrs/properties/checked/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid1 = _errs20 === errors;}else {var valid1 = true;}}}}}}}}}else {validate79.errors = [{instancePath:instancePath+"/attrs",schemaPath:"#/properties/attrs/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.c !== undefined){const _errs22 = errors;if(!(wrapper0.validate(data.c, {instancePath:instancePath+"/c",parentData:data,parentDataProperty:"c",rootData,dynamicAnchors}))){vErrors = vErrors === null ? wrapper0.validate.errors : vErrors.concat(wrapper0.validate.errors);errors = vErrors.length;}var valid0 = _errs22 === errors;}else {var valid0 = true;}}}}}}}else {validate79.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate79.errors = vErrors;return errors === 0;}validate79.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema121 = {"type":"object","additionalProperties":false,"required":["t","lang","lines"],"properties":{"t":{"const":"code"},"lang":{"type":"string","pattern":"^[a-z0-9+#-]{1,24}$"},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"highlight":{"type":"array","items":{"type":"integer","minimum":1}},"lines":{"type":"array","maxItems":5000,"items":{"type":"array","maxItems":2000,"items":{"type":"object","additionalProperties":false,"required":["v"],"properties":{"v":{"type":"string","maxLength":20000},"l":{"$ref":"#/$defs/tokenColor"},"d":{"$ref":"#/$defs/tokenColor"},"i":{"const":true}}}}}}};const schema122 = {"type":"string","pattern":"^#[0-9a-fA-F]{6}$"};const pattern80 = new RegExp("^[a-z0-9+#-]{1,24}$", "u");const pattern81 = new RegExp("^#[0-9a-fA-F]{6}$", "u");function validate81(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate81.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((data.t === undefined) && (missing0 = "t")) || ((data.lang === undefined) && (missing0 = "lang"))) || ((data.lines === undefined) && (missing0 = "lines"))){validate81.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(((((key0 === "t") || (key0 === "lang")) || (key0 === "title")) || (key0 === "highlight")) || (key0 === "lines"))){validate81.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.t !== undefined){const _errs2 = errors;if("code" !== data.t){validate81.errors = [{instancePath:instancePath+"/t",schemaPath:"#/properties/t/const",keyword:"const",params:{allowedValue: "code"},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.lang !== undefined){let data1 = data.lang;const _errs3 = errors;if(errors === _errs3){if(typeof data1 === "string"){if(!pattern80.test(data1)){validate81.errors = [{instancePath:instancePath+"/lang",schemaPath:"#/properties/lang/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9+#-]{1,24}$"},message:"must match pattern \""+"^[a-z0-9+#-]{1,24}$"+"\""}];return false;}}else {validate81.errors = [{instancePath:instancePath+"/lang",schemaPath:"#/properties/lang/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.title !== undefined){const _errs5 = errors;if(!(validate75(data.title, {instancePath:instancePath+"/title",parentData:data,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate75.errors : vErrors.concat(validate75.errors);errors = vErrors.length;}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.highlight !== undefined){let data3 = data.highlight;const _errs6 = errors;if(errors === _errs6){if(Array.isArray(data3)){var valid1 = true;const len0 = data3.length;for(let i0=0; i0=", limit: 1},message:"must be >= 1"}];return false;}}}var valid1 = _errs8 === errors;if(!valid1){break;}}}else {validate81.errors = [{instancePath:instancePath+"/highlight",schemaPath:"#/properties/highlight/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs6 === errors;}else {var valid0 = true;}if(valid0){if(data.lines !== undefined){let data5 = data.lines;const _errs10 = errors;if(errors === _errs10){if(Array.isArray(data5)){if(data5.length > 5000){validate81.errors = [{instancePath:instancePath+"/lines",schemaPath:"#/properties/lines/maxItems",keyword:"maxItems",params:{limit: 5000},message:"must NOT have more than 5000 items"}];return false;}else {var valid2 = true;const len1 = data5.length;for(let i1=0; i1 2000){validate81.errors = [{instancePath:instancePath+"/lines/" + i1,schemaPath:"#/properties/lines/items/maxItems",keyword:"maxItems",params:{limit: 2000},message:"must NOT have more than 2000 items"}];return false;}else {var valid3 = true;const len2 = data6.length;for(let i2=0; i2 20000){validate81.errors = [{instancePath:instancePath+"/lines/" + i1+"/" + i2+"/v",schemaPath:"#/properties/lines/items/items/properties/v/maxLength",keyword:"maxLength",params:{limit: 20000},message:"must NOT have more than 20000 characters"}];return false;}}else {validate81.errors = [{instancePath:instancePath+"/lines/" + i1+"/" + i2+"/v",schemaPath:"#/properties/lines/items/items/properties/v/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs17 === errors;}else {var valid4 = true;}if(valid4){if(data7.l !== undefined){let data9 = data7.l;const _errs19 = errors;const _errs20 = errors;if(errors === _errs20){if(typeof data9 === "string"){if(!pattern81.test(data9)){validate81.errors = [{instancePath:instancePath+"/lines/" + i1+"/" + i2+"/l",schemaPath:"#/$defs/tokenColor/pattern",keyword:"pattern",params:{pattern: "^#[0-9a-fA-F]{6}$"},message:"must match pattern \""+"^#[0-9a-fA-F]{6}$"+"\""}];return false;}}else {validate81.errors = [{instancePath:instancePath+"/lines/" + i1+"/" + i2+"/l",schemaPath:"#/$defs/tokenColor/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs19 === errors;}else {var valid4 = true;}if(valid4){if(data7.d !== undefined){let data10 = data7.d;const _errs22 = errors;const _errs23 = errors;if(errors === _errs23){if(typeof data10 === "string"){if(!pattern81.test(data10)){validate81.errors = [{instancePath:instancePath+"/lines/" + i1+"/" + i2+"/d",schemaPath:"#/$defs/tokenColor/pattern",keyword:"pattern",params:{pattern: "^#[0-9a-fA-F]{6}$"},message:"must match pattern \""+"^#[0-9a-fA-F]{6}$"+"\""}];return false;}}else {validate81.errors = [{instancePath:instancePath+"/lines/" + i1+"/" + i2+"/d",schemaPath:"#/$defs/tokenColor/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs22 === errors;}else {var valid4 = true;}if(valid4){if(data7.i !== undefined){const _errs25 = errors;if(true !== data7.i){validate81.errors = [{instancePath:instancePath+"/lines/" + i1+"/" + i2+"/i",schemaPath:"#/properties/lines/items/items/properties/i/const",keyword:"const",params:{allowedValue: true},message:"must be equal to constant"}];return false;}var valid4 = _errs25 === errors;}else {var valid4 = true;}}}}}}}else {validate81.errors = [{instancePath:instancePath+"/lines/" + i1+"/" + i2,schemaPath:"#/properties/lines/items/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs14 === errors;if(!valid3){break;}}}}else {validate81.errors = [{instancePath:instancePath+"/lines/" + i1,schemaPath:"#/properties/lines/items/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs12 === errors;if(!valid2){break;}}}}else {validate81.errors = [{instancePath:instancePath+"/lines",schemaPath:"#/properties/lines/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs10 === errors;}else {var valid0 = true;}}}}}}}}else {validate81.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate81.errors = vErrors;return errors === 0;}validate81.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema124 = {"type":"object","additionalProperties":false,"required":["t","name"],"properties":{"t":{"const":"tag"},"name":{"type":"string","enum":["admin-module-finder","annotated-yaml","assessment-timer","block-flow","build-roadmap","callout","card","cards","check-mode-sim","column","columns","command-vs-module","condition-playground","cron-builder","custom-fact-builder","data-explorer","diagram","error-decoder","fact-gathering","facts-explorer","feature-grid","fetch-layout","file-edit-simulator","file-module-chooser","flashcards","flow-map","fqcn-explorer","glob-tester","glossary","grep-tester","group-vars-resolver","handler-timeline","hero","host-pattern-tester","idempotency-demo","inventory-explorer","kbd","lab","lab-challenge","lab-finish","lab-network-map","lab-notes","lab-setup","lead","loop-unroller","magic-variables","mode-calculator","module-explorer","objectives","play-order","play-recap","practice","precedence-resolver","program-cards","project-tree","quiz","range-expander","reader-variables","readiness-checklist","reuse-simulator","reveal","role-anatomy","role-var-resolver","run-stages","shell-practice","snapshot-chain","starter-files","stat-explorer","step","steps","tab","tabs","task","task-outcome","template-playground","term","terminal-demo","variable-name-checker","variable-precedence","variable-substitution","variant","variant-group","variant-switch","vault-commands","verbosity","yaml-multiline"]},"attrs":{"type":"object","propertyNames":{"pattern":"^[a-z][a-zA-Z0-9]*$"},"additionalProperties":{"oneOf":[{"type":"string","maxLength":4000},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":50,"items":{"type":"string","maxLength":400}}]}},"c":{"$ref":"#/$defs/children"}}};const pattern83 = new RegExp("^[a-z][a-zA-Z0-9]*$", "u");function validate84(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate84.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.t === undefined) && (missing0 = "t")) || ((data.name === undefined) && (missing0 = "name"))){validate84.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((((key0 === "t") || (key0 === "name")) || (key0 === "attrs")) || (key0 === "c"))){validate84.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.t !== undefined){const _errs2 = errors;if("tag" !== data.t){validate84.errors = [{instancePath:instancePath+"/t",schemaPath:"#/properties/t/const",keyword:"const",params:{allowedValue: "tag"},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.name !== undefined){let data1 = data.name;const _errs3 = errors;if(typeof data1 !== "string"){validate84.errors = [{instancePath:instancePath+"/name",schemaPath:"#/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}if(!((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((data1 === "admin-module-finder") || (data1 === "annotated-yaml")) || (data1 === "assessment-timer")) || (data1 === "block-flow")) || (data1 === "build-roadmap")) || (data1 === "callout")) || (data1 === "card")) || (data1 === "cards")) || (data1 === "check-mode-sim")) || (data1 === "column")) || (data1 === "columns")) || (data1 === "command-vs-module")) || (data1 === "condition-playground")) || (data1 === "cron-builder")) || (data1 === "custom-fact-builder")) || (data1 === "data-explorer")) || (data1 === "diagram")) || (data1 === "error-decoder")) || (data1 === "fact-gathering")) || (data1 === "facts-explorer")) || (data1 === "feature-grid")) || (data1 === "fetch-layout")) || (data1 === "file-edit-simulator")) || (data1 === "file-module-chooser")) || (data1 === "flashcards")) || (data1 === "flow-map")) || (data1 === "fqcn-explorer")) || (data1 === "glob-tester")) || (data1 === "glossary")) || (data1 === "grep-tester")) || (data1 === "group-vars-resolver")) || (data1 === "handler-timeline")) || (data1 === "hero")) || (data1 === "host-pattern-tester")) || (data1 === "idempotency-demo")) || (data1 === "inventory-explorer")) || (data1 === "kbd")) || (data1 === "lab")) || (data1 === "lab-challenge")) || (data1 === "lab-finish")) || (data1 === "lab-network-map")) || (data1 === "lab-notes")) || (data1 === "lab-setup")) || (data1 === "lead")) || (data1 === "loop-unroller")) || (data1 === "magic-variables")) || (data1 === "mode-calculator")) || (data1 === "module-explorer")) || (data1 === "objectives")) || (data1 === "play-order")) || (data1 === "play-recap")) || (data1 === "practice")) || (data1 === "precedence-resolver")) || (data1 === "program-cards")) || (data1 === "project-tree")) || (data1 === "quiz")) || (data1 === "range-expander")) || (data1 === "reader-variables")) || (data1 === "readiness-checklist")) || (data1 === "reuse-simulator")) || (data1 === "reveal")) || (data1 === "role-anatomy")) || (data1 === "role-var-resolver")) || (data1 === "run-stages")) || (data1 === "shell-practice")) || (data1 === "snapshot-chain")) || (data1 === "starter-files")) || (data1 === "stat-explorer")) || (data1 === "step")) || (data1 === "steps")) || (data1 === "tab")) || (data1 === "tabs")) || (data1 === "task")) || (data1 === "task-outcome")) || (data1 === "template-playground")) || (data1 === "term")) || (data1 === "terminal-demo")) || (data1 === "variable-name-checker")) || (data1 === "variable-precedence")) || (data1 === "variable-substitution")) || (data1 === "variant")) || (data1 === "variant-group")) || (data1 === "variant-switch")) || (data1 === "vault-commands")) || (data1 === "verbosity")) || (data1 === "yaml-multiline"))){validate84.errors = [{instancePath:instancePath+"/name",schemaPath:"#/properties/name/enum",keyword:"enum",params:{allowedValues: schema124.properties.name.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.attrs !== undefined){let data2 = data.attrs;const _errs5 = errors;if(errors === _errs5){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){for(const key1 in data2){const _errs7 = errors;if(typeof key1 === "string"){if(!pattern83.test(key1)){const err0 = {instancePath:instancePath+"/attrs",schemaPath:"#/properties/attrs/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[a-z][a-zA-Z0-9]*$"},message:"must match pattern \""+"^[a-z][a-zA-Z0-9]*$"+"\"",propertyName:key1};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs7 === errors;if(!valid1){const err1 = {instancePath:instancePath+"/attrs",schemaPath:"#/properties/attrs/propertyNames",keyword:"propertyNames",params:{propertyName: key1},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate84.errors = vErrors;return false;break;}}if(valid1){for(const key2 in data2){let data3 = data2[key2];const _errs9 = errors;const _errs10 = errors;let valid3 = false;let passing0 = null;const _errs11 = errors;if(errors === _errs11){if(typeof data3 === "string"){if(func2(data3) > 4000){const err2 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/attrs/additionalProperties/oneOf/0/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}else {const err3 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/attrs/additionalProperties/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}var _valid0 = _errs11 === errors;if(_valid0){valid3 = true;passing0 = 0;}const _errs13 = errors;if(!((typeof data3 == "number") && (isFinite(data3)))){const err4 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/attrs/additionalProperties/oneOf/1/type",keyword:"type",params:{type: "number"},message:"must be number"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}var _valid0 = _errs13 === errors;if(_valid0 && valid3){valid3 = false;passing0 = [passing0, 1];}else {if(_valid0){valid3 = true;passing0 = 1;}const _errs15 = errors;if(typeof data3 !== "boolean"){const err5 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/attrs/additionalProperties/oneOf/2/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}var _valid0 = _errs15 === errors;if(_valid0 && valid3){valid3 = false;passing0 = [passing0, 2];}else {if(_valid0){valid3 = true;passing0 = 2;}const _errs17 = errors;if(errors === _errs17){if(Array.isArray(data3)){if(data3.length > 50){const err6 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/attrs/additionalProperties/oneOf/3/maxItems",keyword:"maxItems",params:{limit: 50},message:"must NOT have more than 50 items"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}else {var valid4 = true;const len0 = data3.length;for(let i0=0; i0 400){const err7 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/attrs/additionalProperties/oneOf/3/items/maxLength",keyword:"maxLength",params:{limit: 400},message:"must NOT have more than 400 characters"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}else {const err8 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i0,schemaPath:"#/properties/attrs/additionalProperties/oneOf/3/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}var valid4 = _errs19 === errors;if(!valid4){break;}}}}else {const err9 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/attrs/additionalProperties/oneOf/3/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}var _valid0 = _errs17 === errors;if(_valid0 && valid3){valid3 = false;passing0 = [passing0, 3];}else {if(_valid0){valid3 = true;passing0 = 3;}}}}if(!valid3){const err10 = {instancePath:instancePath+"/attrs/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/attrs/additionalProperties/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;validate84.errors = vErrors;return false;}else {errors = _errs10;if(vErrors !== null){if(_errs10){vErrors.length = _errs10;}else {vErrors = null;}}}var valid2 = _errs9 === errors;if(!valid2){break;}}}}else {validate84.errors = [{instancePath:instancePath+"/attrs",schemaPath:"#/properties/attrs/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.c !== undefined){const _errs21 = errors;if(!(wrapper0.validate(data.c, {instancePath:instancePath+"/c",parentData:data,parentDataProperty:"c",rootData,dynamicAnchors}))){vErrors = vErrors === null ? wrapper0.validate.errors : vErrors.concat(wrapper0.validate.errors);errors = vErrors.length;}var valid0 = _errs21 === errors;}else {var valid0 = true;}}}}}}}else {validate84.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate84.errors = vErrors;return errors === 0;}validate84.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate78(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate78.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;let valid0 = false;let passing0 = null;const _errs1 = errors;const _errs2 = errors;if(errors === _errs2){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.t === undefined) && (missing0 = "t")) || ((data.v === undefined) && (missing0 = "v"))){const err0 = {instancePath,schemaPath:"#/$defs/text/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}else {const _errs4 = errors;for(const key0 in data){if(!((key0 === "t") || (key0 === "v"))){const err1 = {instancePath,schemaPath:"#/$defs/text/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;break;}}if(_errs4 === errors){if(data.t !== undefined){const _errs5 = errors;if("text" !== data.t){const err2 = {instancePath:instancePath+"/t",schemaPath:"#/$defs/text/properties/t/const",keyword:"const",params:{allowedValue: "text"},message:"must be equal to constant"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}var valid2 = _errs5 === errors;}else {var valid2 = true;}if(valid2){if(data.v !== undefined){let data1 = data.v;const _errs6 = errors;if(errors === _errs6){if(typeof data1 === "string"){if(func2(data1) > 20000){const err3 = {instancePath:instancePath+"/v",schemaPath:"#/$defs/text/properties/v/maxLength",keyword:"maxLength",params:{limit: 20000},message:"must NOT have more than 20000 characters"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}else {const err4 = {instancePath:instancePath+"/v",schemaPath:"#/$defs/text/properties/v/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}var valid2 = _errs6 === errors;}else {var valid2 = true;}}}}}else {const err5 = {instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "object"},message:"must be object"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}}var _valid0 = _errs1 === errors;if(_valid0){valid0 = true;passing0 = 0;var props0 = true;}const _errs8 = errors;if(!(validate79(data, {instancePath,parentData,parentDataProperty,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate79.errors : vErrors.concat(validate79.errors);errors = vErrors.length;}var _valid0 = _errs8 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 1];}else {if(_valid0){valid0 = true;passing0 = 1;if(props0 !== true){props0 = true;}}const _errs9 = errors;if(!(validate81(data, {instancePath,parentData,parentDataProperty,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate81.errors : vErrors.concat(validate81.errors);errors = vErrors.length;}var _valid0 = _errs9 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 2];}else {if(_valid0){valid0 = true;passing0 = 2;if(props0 !== true){props0 = true;}}const _errs10 = errors;if(!(validate84(data, {instancePath,parentData,parentDataProperty,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate84.errors : vErrors.concat(validate84.errors);errors = vErrors.length;}var _valid0 = _errs10 === errors;if(_valid0 && valid0){valid0 = false;passing0 = [passing0, 3];}else {if(_valid0){valid0 = true;passing0 = 3;if(props0 !== true){props0 = true;}}}}}if(!valid0){const err6 = {instancePath,schemaPath:"#/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;validate78.errors = vErrors;return false;}else {errors = _errs0;if(vErrors !== null){if(_errs0){vErrors.length = _errs0;}else {vErrors = null;}}}validate78.errors = vErrors;evaluated0.props = props0;return errors === 0;}validate78.evaluated = {"dynamicProps":true,"dynamicItems":false};function validate77(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate77.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(Array.isArray(data)){if(data.length > 5000){validate77.errors = [{instancePath,schemaPath:"#/maxItems",keyword:"maxItems",params:{limit: 5000},message:"must NOT have more than 5000 items"}];return false;}else {var valid0 = true;const len0 = data.length;for(let i0=0; i0 2000){validate89.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate89.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate89.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 75){validate89.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 75},message:"must NOT have more than 75 characters"}];return false;}}else {validate89.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate89.errors = vErrors;return errors === 0;}validate89.evaluated = {"dynamicProps":false,"dynamicItems":false};function validate74(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/bundle/page.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate74.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((((((data.apiVersion === undefined) && (missing0 = "apiVersion")) || ((data.key === undefined) && (missing0 = "key"))) || ((data.title === undefined) && (missing0 = "title"))) || ((data.kind === undefined) && (missing0 = "kind"))) || ((data.toc === undefined) && (missing0 = "toc"))) || ((data.data === undefined) && (missing0 = "data"))) || ((data.tree === undefined) && (missing0 = "tree"))){validate74.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema106.properties, key0))){validate74.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.apiVersion !== undefined){const _errs2 = errors;if(1 !== data.apiVersion){validate74.errors = [{instancePath:instancePath+"/apiVersion",schemaPath:"../common.schema.json#/$defs/apiVersion/const",keyword:"const",params:{allowedValue: 1},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.key !== undefined){let data1 = data.key;const _errs4 = errors;if(errors === _errs4){if(typeof data1 === "string"){if(!pattern71.test(data1)){validate74.errors = [{instancePath:instancePath+"/key",schemaPath:"#/properties/key/pattern",keyword:"pattern",params:{pattern: "^(?:ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*|home|details|site-home)$"},message:"must match pattern \""+"^(?:ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*|home|details|site-home)$"+"\""}];return false;}}else {validate74.errors = [{instancePath:instancePath+"/key",schemaPath:"#/properties/key/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.title !== undefined){const _errs6 = errors;if(!(validate75(data.title, {instancePath:instancePath+"/title",parentData:data,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate75.errors : vErrors.concat(validate75.errors);errors = vErrors.length;}var valid0 = _errs6 === errors;}else {var valid0 = true;}if(valid0){if(data.kind !== undefined){let data3 = data.kind;const _errs7 = errors;if(!((((((data3 === "lesson") || (data3 === "lab")) || (data3 === "quiz")) || (data3 === "summary")) || (data3 === "reference")) || (data3 === "landing"))){validate74.errors = [{instancePath:instancePath+"/kind",schemaPath:"#/properties/kind/enum",keyword:"enum",params:{allowedValues: schema106.properties.kind.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.minutes !== undefined){let data4 = data.minutes;const _errs8 = errors;const _errs9 = errors;if(!(((typeof data4 == "number") && (!(data4 % 1) && !isNaN(data4))) && (isFinite(data4)))){validate74.errors = [{instancePath:instancePath+"/minutes",schemaPath:"../common.schema.json#/$defs/minutes/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs9){if((typeof data4 == "number") && (isFinite(data4))){if(data4 > 600 || isNaN(data4)){validate74.errors = [{instancePath:instancePath+"/minutes",schemaPath:"../common.schema.json#/$defs/minutes/maximum",keyword:"maximum",params:{comparison: "<=", limit: 600},message:"must be <= 600"}];return false;}else {if(data4 < 1 || isNaN(data4)){validate74.errors = [{instancePath:instancePath+"/minutes",schemaPath:"../common.schema.json#/$defs/minutes/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}}var valid0 = _errs8 === errors;}else {var valid0 = true;}if(valid0){if(data.description !== undefined){let data5 = data.description;const _errs11 = errors;const _errs12 = errors;const _errs14 = errors;const _errs15 = errors;if(typeof data5 === "string"){if(!pattern5.test(data5)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid4 = _errs15 === errors;if(valid4){validate74.errors = [{instancePath:instancePath+"/description",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs14;if(vErrors !== null){if(_errs14){vErrors.length = _errs14;}else {vErrors = null;}}}if(errors === _errs12){if(typeof data5 === "string"){if(func2(data5) > 2000){validate74.errors = [{instancePath:instancePath+"/description",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data5) < 1){validate74.errors = [{instancePath:instancePath+"/description",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate74.errors = [{instancePath:instancePath+"/description",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs11 === errors;}else {var valid0 = true;}if(valid0){if(data.toc !== undefined){let data6 = data.toc;const _errs16 = errors;if(errors === _errs16){if(Array.isArray(data6)){if(data6.length > 200){validate74.errors = [{instancePath:instancePath+"/toc",schemaPath:"#/properties/toc/maxItems",keyword:"maxItems",params:{limit: 200},message:"must NOT have more than 200 items"}];return false;}else {var valid5 = true;const len0 = data6.length;for(let i0=0; i0 2000){validate74.errors = [{instancePath:instancePath+"/toc/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data9) < 1){validate74.errors = [{instancePath:instancePath+"/toc/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate74.errors = [{instancePath:instancePath+"/toc/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs24 === errors;}else {var valid6 = true;}if(valid6){if(data7.depth !== undefined){let data10 = data7.depth;const _errs29 = errors;if(!((data10 === 2) || (data10 === 3))){validate74.errors = [{instancePath:instancePath+"/toc/" + i0+"/depth",schemaPath:"#/properties/toc/items/properties/depth/enum",keyword:"enum",params:{allowedValues: schema106.properties.toc.items.properties.depth.enum},message:"must be equal to one of the allowed values"}];return false;}var valid6 = _errs29 === errors;}else {var valid6 = true;}}}}}}else {validate74.errors = [{instancePath:instancePath+"/toc/" + i0,schemaPath:"#/properties/toc/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid5 = _errs18 === errors;if(!valid5){break;}}}}else {validate74.errors = [{instancePath:instancePath+"/toc",schemaPath:"#/properties/toc/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs16 === errors;}else {var valid0 = true;}if(valid0){if(data.data !== undefined){let data11 = data.data;const _errs30 = errors;if(errors === _errs30){if(data11 && typeof data11 == "object" && !Array.isArray(data11)){for(const key2 in data11){const _errs32 = errors;const _errs33 = errors;if(errors === _errs33){if(typeof key2 === "string"){if(func2(key2) > 64){const err2 = {instancePath:instancePath+"/data",schemaPath:"../common.schema.json#/$defs/dataRef/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters",propertyName:key2};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}else {if(!pattern18.test(key2)){const err3 = {instancePath:instancePath+"/data",schemaPath:"../common.schema.json#/$defs/dataRef/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\"",propertyName:key2};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}}else {const err4 = {instancePath:instancePath+"/data",schemaPath:"../common.schema.json#/$defs/dataRef/type",keyword:"type",params:{type: "string"},message:"must be string",propertyName:key2};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}var valid10 = _errs32 === errors;if(!valid10){const err5 = {instancePath:instancePath+"/data",schemaPath:"#/properties/data/propertyNames",keyword:"propertyNames",params:{propertyName: key2},message:"property name must be valid"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;validate74.errors = vErrors;return false;break;}}}else {validate74.errors = [{instancePath:instancePath+"/data",schemaPath:"#/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs30 === errors;}else {var valid0 = true;}if(valid0){if(data.tree !== undefined){const _errs35 = errors;if(!(validate77(data.tree, {instancePath:instancePath+"/tree",parentData:data,parentDataProperty:"tree",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate77.errors : vErrors.concat(validate77.errors);errors = vErrors.length;}var valid0 = _errs35 === errors;}else {var valid0 = true;}if(valid0){if(data.eyebrow !== undefined){const _errs36 = errors;if(!(validate75(data.eyebrow, {instancePath:instancePath+"/eyebrow",parentData:data,parentDataProperty:"eyebrow",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate75.errors : vErrors.concat(validate75.errors);errors = vErrors.length;}var valid0 = _errs36 === errors;}else {var valid0 = true;}if(valid0){if(data.seoTitle !== undefined){const _errs37 = errors;if(!(validate89(data.seoTitle, {instancePath:instancePath+"/seoTitle",parentData:data,parentDataProperty:"seoTitle",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate89.errors : vErrors.concat(validate89.errors);errors = vErrors.length;}var valid0 = _errs37 === errors;}else {var valid0 = true;}}}}}}}}}}}}}}else {validate74.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate74.errors = vErrors;return errors === 0;}validate74.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateSearch = validate91;const schema127 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/bundle/search.schema.json","type":"object","additionalProperties":false,"required":["apiVersion","entries"],"properties":{"apiVersion":{"$ref":"../common.schema.json#/$defs/apiVersion"},"entries":{"type":"array","maxItems":20000,"items":{"type":"object","additionalProperties":false,"required":["page","text"],"properties":{"page":{"type":"string","pattern":"^(?:ch[0-9]{2}/[a-z0-9]+(?:-[a-z0-9]+)*|home|details)$"},"heading":{"type":"string","maxLength":300},"anchor":{"type":"string","pattern":"^[a-z0-9_-][a-z0-9_-]{0,119}$"},"text":{"type":"string","maxLength":100000}}}}}};function validate91(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/bundle/search.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate91.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.apiVersion === undefined) && (missing0 = "apiVersion")) || ((data.entries === undefined) && (missing0 = "entries"))){validate91.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "apiVersion") || (key0 === "entries"))){validate91.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.apiVersion !== undefined){const _errs2 = errors;if(1 !== data.apiVersion){validate91.errors = [{instancePath:instancePath+"/apiVersion",schemaPath:"../common.schema.json#/$defs/apiVersion/const",keyword:"const",params:{allowedValue: 1},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.entries !== undefined){let data1 = data.entries;const _errs4 = errors;if(errors === _errs4){if(Array.isArray(data1)){if(data1.length > 20000){validate91.errors = [{instancePath:instancePath+"/entries",schemaPath:"#/properties/entries/maxItems",keyword:"maxItems",params:{limit: 20000},message:"must NOT have more than 20000 items"}];return false;}else {var valid2 = true;const len0 = data1.length;for(let i0=0; i0 300){validate91.errors = [{instancePath:instancePath+"/entries/" + i0+"/heading",schemaPath:"#/properties/entries/items/properties/heading/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}}else {validate91.errors = [{instancePath:instancePath+"/entries/" + i0+"/heading",schemaPath:"#/properties/entries/items/properties/heading/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs11 === errors;}else {var valid3 = true;}if(valid3){if(data2.anchor !== undefined){let data5 = data2.anchor;const _errs13 = errors;if(errors === _errs13){if(typeof data5 === "string"){if(!pattern74.test(data5)){validate91.errors = [{instancePath:instancePath+"/entries/" + i0+"/anchor",schemaPath:"#/properties/entries/items/properties/anchor/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9_-][a-z0-9_-]{0,119}$"},message:"must match pattern \""+"^[a-z0-9_-][a-z0-9_-]{0,119}$"+"\""}];return false;}}else {validate91.errors = [{instancePath:instancePath+"/entries/" + i0+"/anchor",schemaPath:"#/properties/entries/items/properties/anchor/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs13 === errors;}else {var valid3 = true;}if(valid3){if(data2.text !== undefined){let data6 = data2.text;const _errs15 = errors;if(errors === _errs15){if(typeof data6 === "string"){if(func2(data6) > 100000){validate91.errors = [{instancePath:instancePath+"/entries/" + i0+"/text",schemaPath:"#/properties/entries/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 100000},message:"must NOT have more than 100000 characters"}];return false;}}else {validate91.errors = [{instancePath:instancePath+"/entries/" + i0+"/text",schemaPath:"#/properties/entries/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs15 === errors;}else {var valid3 = true;}}}}}}}else {validate91.errors = [{instancePath:instancePath+"/entries/" + i0,schemaPath:"#/properties/entries/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs6 === errors;if(!valid2){break;}}}}else {validate91.errors = [{instancePath:instancePath+"/entries",schemaPath:"#/properties/entries/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}}}}}else {validate91.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate91.errors = vErrors;return errors === 0;}validate91.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateLegacy = validate92;const schema129 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/bundle/legacy.schema.json","type":"object","additionalProperties":false,"required":["apiVersion","course","track","interface"],"properties":{"apiVersion":{"$ref":"../common.schema.json#/$defs/apiVersion"},"course":{"type":"object","additionalProperties":false,"required":["title","tagline"],"properties":{"title":{"$ref":"../common.schema.json#/$defs/shortText"},"tagline":{"$ref":"../common.schema.json#/$defs/shortText"},"repo":{"$ref":"../common.schema.json#/$defs/url"}}},"track":{"type":"object","additionalProperties":{"type":"string","maxLength":200},"required":["id","label","platform"],"properties":{"platform":{"type":"object","additionalProperties":false,"required":["title","path"],"properties":{"title":{"$ref":"../common.schema.json#/$defs/shortText"},"eyebrow":{"$ref":"../common.schema.json#/$defs/shortText"},"description":{"$ref":"../common.schema.json#/$defs/text"},"path":{"const":"/platform"}}}}},"interface":{"$ref":"interface.schema.json#/properties/interface"}}};const schema137 = {"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}};function validate93(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate93.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate93.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate93.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate93.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate93.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate93.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate93.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate93.errors = vErrors;return errors === 0;}validate93.evaluated = {"dynamicProps":false,"dynamicItems":false};const pattern90 = new RegExp("^[A-Z][A-Za-z0-9]*$", "u");function validate92(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/bundle/legacy.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate92.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((((data.apiVersion === undefined) && (missing0 = "apiVersion")) || ((data.course === undefined) && (missing0 = "course"))) || ((data.track === undefined) && (missing0 = "track"))) || ((data.interface === undefined) && (missing0 = "interface"))){validate92.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((((key0 === "apiVersion") || (key0 === "course")) || (key0 === "track")) || (key0 === "interface"))){validate92.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.apiVersion !== undefined){const _errs2 = errors;if(1 !== data.apiVersion){validate92.errors = [{instancePath:instancePath+"/apiVersion",schemaPath:"../common.schema.json#/$defs/apiVersion/const",keyword:"const",params:{allowedValue: 1},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.course !== undefined){let data1 = data.course;const _errs4 = errors;if(errors === _errs4){if(data1 && typeof data1 == "object" && !Array.isArray(data1)){let missing1;if(((data1.title === undefined) && (missing1 = "title")) || ((data1.tagline === undefined) && (missing1 = "tagline"))){validate92.errors = [{instancePath:instancePath+"/course",schemaPath:"#/properties/course/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs6 = errors;for(const key1 in data1){if(!(((key1 === "title") || (key1 === "tagline")) || (key1 === "repo"))){validate92.errors = [{instancePath:instancePath+"/course",schemaPath:"#/properties/course/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs6 === errors){if(data1.title !== undefined){const _errs7 = errors;if(!(validate93(data1.title, {instancePath:instancePath+"/course/title",parentData:data1,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate93.errors : vErrors.concat(validate93.errors);errors = vErrors.length;}var valid2 = _errs7 === errors;}else {var valid2 = true;}if(valid2){if(data1.tagline !== undefined){const _errs8 = errors;if(!(validate93(data1.tagline, {instancePath:instancePath+"/course/tagline",parentData:data1,parentDataProperty:"tagline",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate93.errors : vErrors.concat(validate93.errors);errors = vErrors.length;}var valid2 = _errs8 === errors;}else {var valid2 = true;}if(valid2){if(data1.repo !== undefined){let data4 = data1.repo;const _errs9 = errors;const _errs10 = errors;if(errors === _errs10){if(typeof data4 === "string"){if(func2(data4) > 2048){validate92.errors = [{instancePath:instancePath+"/course/repo",schemaPath:"../common.schema.json#/$defs/url/maxLength",keyword:"maxLength",params:{limit: 2048},message:"must NOT have more than 2048 characters"}];return false;}else {if(!pattern7.test(data4)){validate92.errors = [{instancePath:instancePath+"/course/repo",schemaPath:"../common.schema.json#/$defs/url/pattern",keyword:"pattern",params:{pattern: "^(?:#[/A-Za-z0-9._~%!$&'()*+,;=:@?#-]*|lab/[a-z0-9][a-z0-9._/-]*|https://[^\\s<>\"]+|mailto:[^\\s<>\"]+)$"},message:"must match pattern \""+"^(?:#[/A-Za-z0-9._~%!$&'()*+,;=:@?#-]*|lab/[a-z0-9][a-z0-9._/-]*|https://[^\\s<>\"]+|mailto:[^\\s<>\"]+)$"+"\""}];return false;}}}else {validate92.errors = [{instancePath:instancePath+"/course/repo",schemaPath:"../common.schema.json#/$defs/url/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs9 === errors;}else {var valid2 = true;}}}}}}else {validate92.errors = [{instancePath:instancePath+"/course",schemaPath:"#/properties/course/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.track !== undefined){let data5 = data.track;const _errs12 = errors;if(errors === _errs12){if(data5 && typeof data5 == "object" && !Array.isArray(data5)){let missing2;if((((data5.id === undefined) && (missing2 = "id")) || ((data5.label === undefined) && (missing2 = "label"))) || ((data5.platform === undefined) && (missing2 = "platform"))){validate92.errors = [{instancePath:instancePath+"/track",schemaPath:"#/properties/track/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs14 = errors;for(const key2 in data5){if(!(key2 === "platform")){let data6 = data5[key2];const _errs15 = errors;if(errors === _errs15){if(typeof data6 === "string"){if(func2(data6) > 200){validate92.errors = [{instancePath:instancePath+"/track/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/track/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}}else {validate92.errors = [{instancePath:instancePath+"/track/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/track/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid4 = _errs15 === errors;if(!valid4){break;}}}if(_errs14 === errors){if(data5.platform !== undefined){let data7 = data5.platform;const _errs17 = errors;if(errors === _errs17){if(data7 && typeof data7 == "object" && !Array.isArray(data7)){let missing3;if(((data7.title === undefined) && (missing3 = "title")) || ((data7.path === undefined) && (missing3 = "path"))){validate92.errors = [{instancePath:instancePath+"/track/platform",schemaPath:"#/properties/track/properties/platform/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs19 = errors;for(const key3 in data7){if(!((((key3 === "title") || (key3 === "eyebrow")) || (key3 === "description")) || (key3 === "path"))){validate92.errors = [{instancePath:instancePath+"/track/platform",schemaPath:"#/properties/track/properties/platform/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs19 === errors){if(data7.title !== undefined){const _errs20 = errors;if(!(validate93(data7.title, {instancePath:instancePath+"/track/platform/title",parentData:data7,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate93.errors : vErrors.concat(validate93.errors);errors = vErrors.length;}var valid6 = _errs20 === errors;}else {var valid6 = true;}if(valid6){if(data7.eyebrow !== undefined){const _errs21 = errors;if(!(validate93(data7.eyebrow, {instancePath:instancePath+"/track/platform/eyebrow",parentData:data7,parentDataProperty:"eyebrow",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate93.errors : vErrors.concat(validate93.errors);errors = vErrors.length;}var valid6 = _errs21 === errors;}else {var valid6 = true;}if(valid6){if(data7.description !== undefined){let data10 = data7.description;const _errs22 = errors;const _errs23 = errors;const _errs25 = errors;const _errs26 = errors;if(typeof data10 === "string"){if(!pattern5.test(data10)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid8 = _errs26 === errors;if(valid8){validate92.errors = [{instancePath:instancePath+"/track/platform/description",schemaPath:"../common.schema.json#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs25;if(vErrors !== null){if(_errs25){vErrors.length = _errs25;}else {vErrors = null;}}}if(errors === _errs23){if(typeof data10 === "string"){if(func2(data10) > 2000){validate92.errors = [{instancePath:instancePath+"/track/platform/description",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data10) < 1){validate92.errors = [{instancePath:instancePath+"/track/platform/description",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate92.errors = [{instancePath:instancePath+"/track/platform/description",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid6 = _errs22 === errors;}else {var valid6 = true;}if(valid6){if(data7.path !== undefined){const _errs27 = errors;if("/platform" !== data7.path){validate92.errors = [{instancePath:instancePath+"/track/platform/path",schemaPath:"#/properties/track/properties/platform/properties/path/const",keyword:"const",params:{allowedValue: "/platform"},message:"must be equal to constant"}];return false;}var valid6 = _errs27 === errors;}else {var valid6 = true;}}}}}}}else {validate92.errors = [{instancePath:instancePath+"/track/platform",schemaPath:"#/properties/track/properties/platform/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}}}}}else {validate92.errors = [{instancePath:instancePath+"/track",schemaPath:"#/properties/track/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs12 === errors;}else {var valid0 = true;}if(valid0){if(data.interface !== undefined){let data12 = data.interface;const _errs28 = errors;const _errs29 = errors;if(errors === _errs29){if(data12 && typeof data12 == "object" && !Array.isArray(data12)){for(const key4 in data12){const _errs31 = errors;if(typeof key4 === "string"){if(!pattern90.test(key4)){const err1 = {instancePath:instancePath+"/interface",schemaPath:"interface.schema.json#/properties/interface/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key4};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}var valid10 = _errs31 === errors;if(!valid10){const err2 = {instancePath:instancePath+"/interface",schemaPath:"interface.schema.json#/properties/interface/propertyNames",keyword:"propertyNames",params:{propertyName: key4},message:"property name must be valid"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;validate92.errors = vErrors;return false;break;}}if(valid10){for(const key5 in data12){let data13 = data12[key5];const _errs33 = errors;if(errors === _errs33){if(data13 && typeof data13 == "object" && !Array.isArray(data13)){const _errs35 = errors;for(const key6 in data13){if(!((key6 === "text") || (key6 === "data"))){validate92.errors = [{instancePath:instancePath+"/interface/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"interface.schema.json#/properties/interface/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key6},message:"must NOT have additional properties"}];return false;break;}}if(_errs35 === errors){if(data13.text !== undefined){let data14 = data13.text;const _errs36 = errors;if(errors === _errs36){if(data14 && typeof data14 == "object" && !Array.isArray(data14)){for(const key7 in data14){let data15 = data14[key7];const _errs39 = errors;if(errors === _errs39){if(typeof data15 === "string"){if(func2(data15) > 4000){validate92.errors = [{instancePath:instancePath+"/interface/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"interface.schema.json#/properties/interface/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate92.errors = [{instancePath:instancePath+"/interface/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key7.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"interface.schema.json#/properties/interface/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid13 = _errs39 === errors;if(!valid13){break;}}}else {validate92.errors = [{instancePath:instancePath+"/interface/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"interface.schema.json#/properties/interface/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid12 = _errs36 === errors;}else {var valid12 = true;}if(valid12){if(data13.data !== undefined){let data16 = data13.data;const _errs41 = errors;if(!(data16 && typeof data16 == "object" && !Array.isArray(data16))){validate92.errors = [{instancePath:instancePath+"/interface/" + key5.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"interface.schema.json#/properties/interface/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid12 = _errs41 === errors;}else {var valid12 = true;}}}}else {validate92.errors = [{instancePath:instancePath+"/interface/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"interface.schema.json#/properties/interface/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid11 = _errs33 === errors;if(!valid11){break;}}}}else {validate92.errors = [{instancePath:instancePath+"/interface",schemaPath:"interface.schema.json#/properties/interface/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs28 === errors;}else {var valid0 = true;}}}}}}}else {validate92.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate92.errors = vErrors;return errors === 0;}validate92.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateInterface = validate98;const schema135 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/bundle/interface.schema.json","type":"object","additionalProperties":false,"required":["apiVersion","interface"],"properties":{"apiVersion":{"$ref":"../common.schema.json#/$defs/apiVersion"},"interface":{"type":"object","propertyNames":{"pattern":"^[A-Z][A-Za-z0-9]*$"},"additionalProperties":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"object","additionalProperties":{"type":"string","maxLength":4000}},"data":{"type":"object"}}}}}};function validate98(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/bundle/interface.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate98.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.apiVersion === undefined) && (missing0 = "apiVersion")) || ((data.interface === undefined) && (missing0 = "interface"))){validate98.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "apiVersion") || (key0 === "interface"))){validate98.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.apiVersion !== undefined){const _errs2 = errors;if(1 !== data.apiVersion){validate98.errors = [{instancePath:instancePath+"/apiVersion",schemaPath:"../common.schema.json#/$defs/apiVersion/const",keyword:"const",params:{allowedValue: 1},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.interface !== undefined){let data1 = data.interface;const _errs4 = errors;if(errors === _errs4){if(data1 && typeof data1 == "object" && !Array.isArray(data1)){for(const key1 in data1){const _errs6 = errors;if(typeof key1 === "string"){if(!pattern90.test(key1)){const err0 = {instancePath:instancePath+"/interface",schemaPath:"#/properties/interface/propertyNames/pattern",keyword:"pattern",params:{pattern: "^[A-Z][A-Za-z0-9]*$"},message:"must match pattern \""+"^[A-Z][A-Za-z0-9]*$"+"\"",propertyName:key1};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid2 = _errs6 === errors;if(!valid2){const err1 = {instancePath:instancePath+"/interface",schemaPath:"#/properties/interface/propertyNames",keyword:"propertyNames",params:{propertyName: key1},message:"property name must be valid"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;validate98.errors = vErrors;return false;break;}}if(valid2){for(const key2 in data1){let data2 = data1[key2];const _errs8 = errors;if(errors === _errs8){if(data2 && typeof data2 == "object" && !Array.isArray(data2)){const _errs10 = errors;for(const key3 in data2){if(!((key3 === "text") || (key3 === "data"))){validate98.errors = [{instancePath:instancePath+"/interface/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/interface/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs10 === errors){if(data2.text !== undefined){let data3 = data2.text;const _errs11 = errors;if(errors === _errs11){if(data3 && typeof data3 == "object" && !Array.isArray(data3)){for(const key4 in data3){let data4 = data3[key4];const _errs14 = errors;if(errors === _errs14){if(typeof data4 === "string"){if(func2(data4) > 4000){validate98.errors = [{instancePath:instancePath+"/interface/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/interface/additionalProperties/properties/text/additionalProperties/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate98.errors = [{instancePath:instancePath+"/interface/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/text/" + key4.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/interface/additionalProperties/properties/text/additionalProperties/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs14 === errors;if(!valid5){break;}}}else {validate98.errors = [{instancePath:instancePath+"/interface/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/interface/additionalProperties/properties/text/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid4 = _errs11 === errors;}else {var valid4 = true;}if(valid4){if(data2.data !== undefined){let data5 = data2.data;const _errs16 = errors;if(!(data5 && typeof data5 == "object" && !Array.isArray(data5))){validate98.errors = [{instancePath:instancePath+"/interface/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/data",schemaPath:"#/properties/interface/additionalProperties/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid4 = _errs16 === errors;}else {var valid4 = true;}}}}else {validate98.errors = [{instancePath:instancePath+"/interface/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/interface/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid3 = _errs8 === errors;if(!valid3){break;}}}}else {validate98.errors = [{instancePath:instancePath+"/interface",schemaPath:"#/properties/interface/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}}}}}else {validate98.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate98.errors = vErrors;return errors === 0;}validate98.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateQuizData = validate99;const schema138 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/quiz.schema.json","type":"object","additionalProperties":false,"required":["questions"],"properties":{"questions":{"type":"array","minItems":1,"maxItems":60,"items":{"type":"object","additionalProperties":false,"required":["id","q","options","answer","explain"],"properties":{"id":{"type":"string","pattern":"^q-[a-z0-9]{6,32}$"},"legacyIndex":{"type":"integer","minimum":0},"q":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"},"code":{"type":"string","maxLength":4000},"options":{"type":"array","minItems":2,"maxItems":6,"uniqueItems":true,"items":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"}},"answer":{"type":"integer","minimum":0,"maximum":5},"explain":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"}}}}}};const func0 = runtime1;function validate99(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/quiz.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate99.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((data.questions === undefined) && (missing0 = "questions")){validate99.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(key0 === "questions")){validate99.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.questions !== undefined){let data0 = data.questions;const _errs2 = errors;if(errors === _errs2){if(Array.isArray(data0)){if(data0.length > 60){validate99.errors = [{instancePath:instancePath+"/questions",schemaPath:"#/properties/questions/maxItems",keyword:"maxItems",params:{limit: 60},message:"must NOT have more than 60 items"}];return false;}else {if(data0.length < 1){validate99.errors = [{instancePath:instancePath+"/questions",schemaPath:"#/properties/questions/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid1 = true;const len0 = data0.length;for(let i0=0; i0=", limit: 0},message:"must be >= 0"}];return false;}}}var valid2 = _errs9 === errors;}else {var valid2 = true;}if(valid2){if(data1.q !== undefined){let data4 = data1.q;const _errs11 = errors;const _errs12 = errors;const _errs14 = errors;const _errs15 = errors;if(typeof data4 === "string"){if(!pattern8.test(data4)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid4 = _errs15 === errors;if(valid4){validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/q",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs14;if(vErrors !== null){if(_errs14){vErrors.length = _errs14;}else {vErrors = null;}}}if(errors === _errs12){if(typeof data4 === "string"){if(func2(data4) > 4000){validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/q",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data4) < 1){validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/q",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/q",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs11 === errors;}else {var valid2 = true;}if(valid2){if(data1.code !== undefined){let data5 = data1.code;const _errs16 = errors;if(errors === _errs16){if(typeof data5 === "string"){if(func2(data5) > 4000){validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/code",schemaPath:"#/properties/questions/items/properties/code/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/code",schemaPath:"#/properties/questions/items/properties/code/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs16 === errors;}else {var valid2 = true;}if(valid2){if(data1.options !== undefined){let data6 = data1.options;const _errs18 = errors;if(errors === _errs18){if(Array.isArray(data6)){if(data6.length > 6){validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/options",schemaPath:"#/properties/questions/items/properties/options/maxItems",keyword:"maxItems",params:{limit: 6},message:"must NOT have more than 6 items"}];return false;}else {if(data6.length < 2){validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/options",schemaPath:"#/properties/questions/items/properties/options/minItems",keyword:"minItems",params:{limit: 2},message:"must NOT have fewer than 2 items"}];return false;}else {var valid5 = true;const len1 = data6.length;for(let i1=0; i1 4000){validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/options/" + i1,schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data7) < 1){validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/options/" + i1,schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/options/" + i1,schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid5 = _errs20 === errors;if(!valid5){break;}}if(valid5){let i2 = data6.length;let j0;if(i2 > 1){outer0:for(;i2--;){for(j0 = i2; j0--;){if(func0(data6[i2], data6[j0])){validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/options",schemaPath:"#/properties/questions/items/properties/options/uniqueItems",keyword:"uniqueItems",params:{i: i2, j: j0},message:"must NOT have duplicate items (items ## "+j0+" and "+i2+" are identical)"}];return false;break outer0;}}}}}}}}else {validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/options",schemaPath:"#/properties/questions/items/properties/options/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs18 === errors;}else {var valid2 = true;}if(valid2){if(data1.answer !== undefined){let data8 = data1.answer;const _errs25 = errors;if(!(((typeof data8 == "number") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))){validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/answer",schemaPath:"#/properties/questions/items/properties/answer/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs25){if((typeof data8 == "number") && (isFinite(data8))){if(data8 > 5 || isNaN(data8)){validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/answer",schemaPath:"#/properties/questions/items/properties/answer/maximum",keyword:"maximum",params:{comparison: "<=", limit: 5},message:"must be <= 5"}];return false;}else {if(data8 < 0 || isNaN(data8)){validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/answer",schemaPath:"#/properties/questions/items/properties/answer/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"}];return false;}}}}var valid2 = _errs25 === errors;}else {var valid2 = true;}if(valid2){if(data1.explain !== undefined){let data9 = data1.explain;const _errs27 = errors;const _errs28 = errors;const _errs30 = errors;const _errs31 = errors;if(typeof data9 === "string"){if(!pattern8.test(data9)){const err2 = {};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}var valid10 = _errs31 === errors;if(valid10){validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/explain",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs30;if(vErrors !== null){if(_errs30){vErrors.length = _errs30;}else {vErrors = null;}}}if(errors === _errs28){if(typeof data9 === "string"){if(func2(data9) > 4000){validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/explain",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data9) < 1){validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/explain",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate99.errors = [{instancePath:instancePath+"/questions/" + i0+"/explain",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs27 === errors;}else {var valid2 = true;}}}}}}}}}}else {validate99.errors = [{instancePath:instancePath+"/questions/" + i0,schemaPath:"#/properties/questions/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid1 = _errs4 === errors;if(!valid1){break;}}}}}else {validate99.errors = [{instancePath:instancePath+"/questions",schemaPath:"#/properties/questions/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate99.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate99.errors = vErrors;return errors === 0;}validate99.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validatePracticeData = validate100;const schema142 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/practice.schema.json","type":"object","additionalProperties":false,"required":["questions"],"properties":{"questions":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"object","additionalProperties":false,"required":["id","objective","title","prompt","options","expected","explain"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/id"},"objective":{"$ref":"../common.schema.json#/$defs/objectiveId"},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"prompt":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"},"code":{"type":"string","maxLength":4000},"options":{"type":"array","minItems":3,"maxItems":6,"uniqueItems":true,"items":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"}},"expected":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"},"explain":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"}}}}}};function validate101(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate101.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate101.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate101.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate101.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate101.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate101.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate101.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate101.errors = vErrors;return errors === 0;}validate101.evaluated = {"dynamicProps":false,"dynamicItems":false};function validate100(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/practice.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate100.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((data.questions === undefined) && (missing0 = "questions")){validate100.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(key0 === "questions")){validate100.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.questions !== undefined){let data0 = data.questions;const _errs2 = errors;if(errors === _errs2){if(Array.isArray(data0)){if(data0.length > 20){validate100.errors = [{instancePath:instancePath+"/questions",schemaPath:"#/properties/questions/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {if(data0.length < 1){validate100.errors = [{instancePath:instancePath+"/questions",schemaPath:"#/properties/questions/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid1 = true;const len0 = data0.length;for(let i0=0; i0 64){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data2)){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs7 === errors;}else {var valid2 = true;}if(valid2){if(data1.objective !== undefined){let data3 = data1.objective;const _errs10 = errors;const _errs11 = errors;if(errors === _errs11){if(typeof data3 === "string"){if(!pattern45.test(data3)){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/objective",schemaPath:"../common.schema.json#/$defs/objectiveId/pattern",keyword:"pattern",params:{pattern: "^ch[0-9]{2}\\.[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^ch[0-9]{2}\\.[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}else {validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/objective",schemaPath:"../common.schema.json#/$defs/objectiveId/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs10 === errors;}else {var valid2 = true;}if(valid2){if(data1.title !== undefined){const _errs13 = errors;if(!(validate101(data1.title, {instancePath:instancePath+"/questions/" + i0+"/title",parentData:data1,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate101.errors : vErrors.concat(validate101.errors);errors = vErrors.length;}var valid2 = _errs13 === errors;}else {var valid2 = true;}if(valid2){if(data1.prompt !== undefined){let data5 = data1.prompt;const _errs14 = errors;const _errs15 = errors;const _errs17 = errors;const _errs18 = errors;if(typeof data5 === "string"){if(!pattern8.test(data5)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid6 = _errs18 === errors;if(valid6){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/prompt",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs17;if(vErrors !== null){if(_errs17){vErrors.length = _errs17;}else {vErrors = null;}}}if(errors === _errs15){if(typeof data5 === "string"){if(func2(data5) > 4000){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/prompt",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data5) < 1){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/prompt",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/prompt",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs14 === errors;}else {var valid2 = true;}if(valid2){if(data1.code !== undefined){let data6 = data1.code;const _errs19 = errors;if(errors === _errs19){if(typeof data6 === "string"){if(func2(data6) > 4000){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/code",schemaPath:"#/properties/questions/items/properties/code/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}}else {validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/code",schemaPath:"#/properties/questions/items/properties/code/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs19 === errors;}else {var valid2 = true;}if(valid2){if(data1.options !== undefined){let data7 = data1.options;const _errs21 = errors;if(errors === _errs21){if(Array.isArray(data7)){if(data7.length > 6){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/options",schemaPath:"#/properties/questions/items/properties/options/maxItems",keyword:"maxItems",params:{limit: 6},message:"must NOT have more than 6 items"}];return false;}else {if(data7.length < 3){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/options",schemaPath:"#/properties/questions/items/properties/options/minItems",keyword:"minItems",params:{limit: 3},message:"must NOT have fewer than 3 items"}];return false;}else {var valid7 = true;const len1 = data7.length;for(let i1=0; i1 4000){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/options/" + i1,schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data8) < 1){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/options/" + i1,schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/options/" + i1,schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid7 = _errs23 === errors;if(!valid7){break;}}if(valid7){let i2 = data7.length;let j0;if(i2 > 1){outer0:for(;i2--;){for(j0 = i2; j0--;){if(func0(data7[i2], data7[j0])){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/options",schemaPath:"#/properties/questions/items/properties/options/uniqueItems",keyword:"uniqueItems",params:{i: i2, j: j0},message:"must NOT have duplicate items (items ## "+j0+" and "+i2+" are identical)"}];return false;break outer0;}}}}}}}}else {validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/options",schemaPath:"#/properties/questions/items/properties/options/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid2 = _errs21 === errors;}else {var valid2 = true;}if(valid2){if(data1.expected !== undefined){let data9 = data1.expected;const _errs28 = errors;const _errs29 = errors;const _errs31 = errors;const _errs32 = errors;if(typeof data9 === "string"){if(!pattern8.test(data9)){const err2 = {};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}var valid12 = _errs32 === errors;if(valid12){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/expected",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs31;if(vErrors !== null){if(_errs31){vErrors.length = _errs31;}else {vErrors = null;}}}if(errors === _errs29){if(typeof data9 === "string"){if(func2(data9) > 4000){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/expected",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data9) < 1){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/expected",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/expected",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs28 === errors;}else {var valid2 = true;}if(valid2){if(data1.explain !== undefined){let data10 = data1.explain;const _errs33 = errors;const _errs34 = errors;const _errs36 = errors;const _errs37 = errors;if(typeof data10 === "string"){if(!pattern8.test(data10)){const err3 = {};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}var valid14 = _errs37 === errors;if(valid14){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/explain",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs36;if(vErrors !== null){if(_errs36){vErrors.length = _errs36;}else {vErrors = null;}}}if(errors === _errs34){if(typeof data10 === "string"){if(func2(data10) > 4000){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/explain",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data10) < 1){validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/explain",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate100.errors = [{instancePath:instancePath+"/questions/" + i0+"/explain",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs33 === errors;}else {var valid2 = true;}}}}}}}}}}}else {validate100.errors = [{instancePath:instancePath+"/questions/" + i0,schemaPath:"#/properties/questions/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid1 = _errs4 === errors;if(!valid1){break;}}}}}else {validate100.errors = [{instancePath:instancePath+"/questions",schemaPath:"#/properties/questions/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate100.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate100.errors = vErrors;return errors === 0;}validate100.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateFlashcardsData = validate103;const schema151 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/flashcards.schema.json","type":"object","additionalProperties":false,"required":["cards"],"properties":{"cards":{"type":"array","minItems":1,"maxItems":60,"items":{"type":"object","additionalProperties":false,"required":["front","back"],"properties":{"front":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"},"back":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"}}}}}};function validate103(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/flashcards.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate103.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((data.cards === undefined) && (missing0 = "cards")){validate103.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(key0 === "cards")){validate103.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.cards !== undefined){let data0 = data.cards;const _errs2 = errors;if(errors === _errs2){if(Array.isArray(data0)){if(data0.length > 60){validate103.errors = [{instancePath:instancePath+"/cards",schemaPath:"#/properties/cards/maxItems",keyword:"maxItems",params:{limit: 60},message:"must NOT have more than 60 items"}];return false;}else {if(data0.length < 1){validate103.errors = [{instancePath:instancePath+"/cards",schemaPath:"#/properties/cards/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid1 = true;const len0 = data0.length;for(let i0=0; i0 4000){validate103.errors = [{instancePath:instancePath+"/cards/" + i0+"/front",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data2) < 1){validate103.errors = [{instancePath:instancePath+"/cards/" + i0+"/front",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate103.errors = [{instancePath:instancePath+"/cards/" + i0+"/front",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs7 === errors;}else {var valid2 = true;}if(valid2){if(data1.back !== undefined){let data3 = data1.back;const _errs12 = errors;const _errs13 = errors;const _errs15 = errors;const _errs16 = errors;if(typeof data3 === "string"){if(!pattern8.test(data3)){const err1 = {};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}var valid6 = _errs16 === errors;if(valid6){validate103.errors = [{instancePath:instancePath+"/cards/" + i0+"/back",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs15;if(vErrors !== null){if(_errs15){vErrors.length = _errs15;}else {vErrors = null;}}}if(errors === _errs13){if(typeof data3 === "string"){if(func2(data3) > 4000){validate103.errors = [{instancePath:instancePath+"/cards/" + i0+"/back",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data3) < 1){validate103.errors = [{instancePath:instancePath+"/cards/" + i0+"/back",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate103.errors = [{instancePath:instancePath+"/cards/" + i0+"/back",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs12 === errors;}else {var valid2 = true;}}}}}else {validate103.errors = [{instancePath:instancePath+"/cards/" + i0,schemaPath:"#/properties/cards/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid1 = _errs4 === errors;if(!valid1){break;}}}}}else {validate103.errors = [{instancePath:instancePath+"/cards",schemaPath:"#/properties/cards/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate103.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate103.errors = vErrors;return errors === 0;}validate103.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateFlowMapData = validate104;const schema154 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/flow-map.schema.json","type":"object","additionalProperties":false,"required":["steps"],"properties":{"connections":{"type":"array","maxItems":7,"items":{"$ref":"../common.schema.json#/$defs/shortText"}},"steps":{"type":"array","minItems":2,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["id","title","text"],"properties":{"id":{"$ref":"../common.schema.json#/$defs/id"},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"sub":{"oneOf":[{"$ref":"../common.schema.json#/$defs/shortText"},{"type":"array","minItems":1,"maxItems":3,"items":{"$ref":"../common.schema.json#/$defs/shortText"}}]},"text":{"$ref":"../common.schema.json#/$defs/inlineMarkdown"},"tone":{"$ref":"../common.schema.json#/$defs/tone"}}}}}};const schema159 = {"enum":["gray","purple","teal","coral","pink","blue","green","amber","red"]};function validate105(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate105.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate105.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate105.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate105.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate105.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate105.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate105.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate105.errors = vErrors;return errors === 0;}validate105.evaluated = {"dynamicProps":false,"dynamicItems":false};function validate104(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/flow-map.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate104.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((data.steps === undefined) && (missing0 = "steps")){validate104.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "connections") || (key0 === "steps"))){validate104.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.connections !== undefined){let data0 = data.connections;const _errs2 = errors;if(errors === _errs2){if(Array.isArray(data0)){if(data0.length > 7){validate104.errors = [{instancePath:instancePath+"/connections",schemaPath:"#/properties/connections/maxItems",keyword:"maxItems",params:{limit: 7},message:"must NOT have more than 7 items"}];return false;}else {var valid1 = true;const len0 = data0.length;for(let i0=0; i0 8){validate104.errors = [{instancePath:instancePath+"/steps",schemaPath:"#/properties/steps/maxItems",keyword:"maxItems",params:{limit: 8},message:"must NOT have more than 8 items"}];return false;}else {if(data2.length < 2){validate104.errors = [{instancePath:instancePath+"/steps",schemaPath:"#/properties/steps/minItems",keyword:"minItems",params:{limit: 2},message:"must NOT have fewer than 2 items"}];return false;}else {var valid2 = true;const len1 = data2.length;for(let i1=0; i1 64){validate104.errors = [{instancePath:instancePath+"/steps/" + i1+"/id",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data4)){validate104.errors = [{instancePath:instancePath+"/steps/" + i1+"/id",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate104.errors = [{instancePath:instancePath+"/steps/" + i1+"/id",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs10 === errors;}else {var valid3 = true;}if(valid3){if(data3.title !== undefined){const _errs13 = errors;if(!(validate105(data3.title, {instancePath:instancePath+"/steps/" + i1+"/title",parentData:data3,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate105.errors : vErrors.concat(validate105.errors);errors = vErrors.length;}var valid3 = _errs13 === errors;}else {var valid3 = true;}if(valid3){if(data3.sub !== undefined){let data6 = data3.sub;const _errs14 = errors;const _errs15 = errors;let valid5 = false;let passing0 = null;const _errs16 = errors;if(!(validate105(data6, {instancePath:instancePath+"/steps/" + i1+"/sub",parentData:data3,parentDataProperty:"sub",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate105.errors : vErrors.concat(validate105.errors);errors = vErrors.length;}var _valid0 = _errs16 === errors;if(_valid0){valid5 = true;passing0 = 0;}const _errs17 = errors;if(errors === _errs17){if(Array.isArray(data6)){if(data6.length > 3){const err0 = {instancePath:instancePath+"/steps/" + i1+"/sub",schemaPath:"#/properties/steps/items/properties/sub/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 3},message:"must NOT have more than 3 items"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}else {if(data6.length < 1){const err1 = {instancePath:instancePath+"/steps/" + i1+"/sub",schemaPath:"#/properties/steps/items/properties/sub/oneOf/1/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}else {var valid6 = true;const len2 = data6.length;for(let i2=0; i2 4000){validate104.errors = [{instancePath:instancePath+"/steps/" + i1+"/text",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/maxLength",keyword:"maxLength",params:{limit: 4000},message:"must NOT have more than 4000 characters"}];return false;}else {if(func2(data8) < 1){validate104.errors = [{instancePath:instancePath+"/steps/" + i1+"/text",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate104.errors = [{instancePath:instancePath+"/steps/" + i1+"/text",schemaPath:"../common.schema.json#/$defs/inlineMarkdown/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid3 = _errs20 === errors;}else {var valid3 = true;}if(valid3){if(data3.tone !== undefined){let data9 = data3.tone;const _errs25 = errors;if(!(((((((((data9 === "gray") || (data9 === "purple")) || (data9 === "teal")) || (data9 === "coral")) || (data9 === "pink")) || (data9 === "blue")) || (data9 === "green")) || (data9 === "amber")) || (data9 === "red"))){validate104.errors = [{instancePath:instancePath+"/steps/" + i1+"/tone",schemaPath:"../common.schema.json#/$defs/tone/enum",keyword:"enum",params:{allowedValues: schema159.enum},message:"must be equal to one of the allowed values"}];return false;}var valid3 = _errs25 === errors;}else {var valid3 = true;}}}}}}}}else {validate104.errors = [{instancePath:instancePath+"/steps/" + i1,schemaPath:"#/properties/steps/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid2 = _errs7 === errors;if(!valid2){break;}}}}}else {validate104.errors = [{instancePath:instancePath+"/steps",schemaPath:"#/properties/steps/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}}}}}else {validate104.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate104.errors = vErrors;return errors === 0;}validate104.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateDiagramData = validate110;const schema160 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/diagram.schema.json","type":"object","additionalProperties":false,"required":["title","height","elements"],"properties":{"title":{"type":"string","minLength":1,"maxLength":200},"caption":{"type":"string","minLength":0,"maxLength":600},"height":{"type":"integer","minimum":40,"maximum":1200},"width":{"type":"integer","minimum":200,"maximum":1600},"expandable":{"type":"boolean"},"mode":{"enum":["static","select","steps"]},"initial":{"$ref":"#/$defs/viewKey"},"hint":{"type":"string","minLength":0,"maxLength":300},"elements":{"type":"array","minItems":1,"maxItems":120,"items":{"type":"object","required":["kind"],"properties":{"kind":{"enum":["node","group","arrow","label","badge"]}},"allOf":[{"if":{"properties":{"kind":{"const":"node"}},"required":["kind"]},"then":{"$ref":"#/$defs/node"}},{"if":{"properties":{"kind":{"const":"group"}},"required":["kind"]},"then":{"$ref":"#/$defs/group"}},{"if":{"properties":{"kind":{"const":"arrow"}},"required":["kind"]},"then":{"$ref":"#/$defs/arrow"}},{"if":{"properties":{"kind":{"const":"label"}},"required":["kind"]},"then":{"$ref":"#/$defs/label"}},{"if":{"properties":{"kind":{"const":"badge"}},"required":["kind"]},"then":{"$ref":"#/$defs/badge"}}]}},"info":{"type":"object","maxProperties":30,"propertyNames":{"$ref":"../common.schema.json#/$defs/id"},"additionalProperties":{"type":"object","additionalProperties":false,"required":["title","text"],"properties":{"title":{"type":"string","minLength":1,"maxLength":200},"text":{"type":"string","minLength":1,"maxLength":1500},"tone":{"$ref":"../common.schema.json#/$defs/tone"},"code":{"type":"string","minLength":0,"maxLength":2000}}}},"steps":{"type":"array","minItems":2,"maxItems":12,"items":{"type":"object","additionalProperties":false,"required":["title"],"properties":{"title":{"type":"string","minLength":1,"maxLength":200},"text":{"type":"string","minLength":0,"maxLength":600}}}}},"$defs":{"viewKey":{"$ref":"../common.schema.json#/$defs/id"},"node":{"type":"object","additionalProperties":false,"required":["kind","x","y","w","h"],"properties":{"kind":{"const":"node"},"x":{"type":"number","minimum":-400,"maximum":2400},"y":{"type":"number","minimum":-400,"maximum":2400},"w":{"type":"number","minimum":1,"maximum":2400},"h":{"type":"number","minimum":1,"maximum":2400},"tone":{"$ref":"../common.schema.json#/$defs/tone"},"title":{"type":"string","minLength":0,"maxLength":200},"sub":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"array","minItems":1,"maxItems":6,"items":{"type":"string","minLength":0,"maxLength":300}}]},"mono":{"type":"boolean"},"rx":{"type":"number","minimum":0,"maximum":60},"titleSize":{"type":"number","minimum":8,"maximum":32},"align":{"enum":["start","middle"]},"select":{"$ref":"#/$defs/viewKey"},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}},"group":{"type":"object","additionalProperties":false,"required":["kind","x","y","w","h"],"properties":{"kind":{"const":"group"},"x":{"type":"number","minimum":-400,"maximum":2400},"y":{"type":"number","minimum":-400,"maximum":2400},"w":{"type":"number","minimum":1,"maximum":2400},"h":{"type":"number","minimum":1,"maximum":2400},"tone":{"$ref":"../common.schema.json#/$defs/tone"},"label":{"type":"string","minLength":0,"maxLength":200},"sub":{"type":"string","minLength":0,"maxLength":200},"solid":{"type":"boolean"},"select":{"$ref":"#/$defs/viewKey"},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}},"arrow":{"type":"object","additionalProperties":false,"required":["kind","points"],"properties":{"kind":{"const":"arrow"},"points":{"type":"array","minItems":2,"maxItems":12,"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"number","minimum":-400,"maximum":2400}}},"label":{"type":"string","minLength":0,"maxLength":120},"labelAt":{"type":"number","minimum":0,"maximum":1},"labelDx":{"type":"number","minimum":-400,"maximum":2400},"labelDy":{"type":"number","minimum":-400,"maximum":2400},"dashed":{"type":"boolean"},"both":{"type":"boolean"},"variant":{"enum":["ok","bad"]},"labelAnchor":{"enum":["start","middle","end"]},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}},"label":{"type":"object","additionalProperties":false,"required":["kind","x","y","text"],"properties":{"kind":{"const":"label"},"x":{"type":"number","minimum":-400,"maximum":2400},"y":{"type":"number","minimum":-400,"maximum":2400},"text":{"type":"string","minLength":0,"maxLength":200},"anchor":{"enum":["start","middle","end"]},"size":{"type":"number","minimum":8,"maximum":32},"muted":{"type":"boolean"},"weight":{"type":"number","minimum":100,"maximum":900},"mono":{"type":"boolean"},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}},"badge":{"type":"object","additionalProperties":false,"required":["kind","x","y"],"properties":{"kind":{"const":"badge"},"x":{"type":"number","minimum":-400,"maximum":2400},"y":{"type":"number","minimum":-400,"maximum":2400},"n":{"type":"integer","minimum":0,"maximum":99},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}}}};const schema162 = {"type":"object","additionalProperties":false,"required":["kind","x","y","w","h"],"properties":{"kind":{"const":"node"},"x":{"type":"number","minimum":-400,"maximum":2400},"y":{"type":"number","minimum":-400,"maximum":2400},"w":{"type":"number","minimum":1,"maximum":2400},"h":{"type":"number","minimum":1,"maximum":2400},"tone":{"$ref":"../common.schema.json#/$defs/tone"},"title":{"type":"string","minLength":0,"maxLength":200},"sub":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"array","minItems":1,"maxItems":6,"items":{"type":"string","minLength":0,"maxLength":300}}]},"mono":{"type":"boolean"},"rx":{"type":"number","minimum":0,"maximum":60},"titleSize":{"type":"number","minimum":8,"maximum":32},"align":{"enum":["start","middle"]},"select":{"$ref":"#/$defs/viewKey"},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}};function validate111(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate111.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((((data.kind === undefined) && (missing0 = "kind")) || ((data.x === undefined) && (missing0 = "x"))) || ((data.y === undefined) && (missing0 = "y"))) || ((data.w === undefined) && (missing0 = "w"))) || ((data.h === undefined) && (missing0 = "h"))){validate111.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema162.properties, key0))){validate111.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.kind !== undefined){const _errs2 = errors;if("node" !== data.kind){validate111.errors = [{instancePath:instancePath+"/kind",schemaPath:"#/properties/kind/const",keyword:"const",params:{allowedValue: "node"},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.x !== undefined){let data1 = data.x;const _errs3 = errors;if(errors === _errs3){if((typeof data1 == "number") && (isFinite(data1))){if(data1 > 2400 || isNaN(data1)){validate111.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data1 < -400 || isNaN(data1)){validate111.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate111.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.y !== undefined){let data2 = data.y;const _errs5 = errors;if(errors === _errs5){if((typeof data2 == "number") && (isFinite(data2))){if(data2 > 2400 || isNaN(data2)){validate111.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data2 < -400 || isNaN(data2)){validate111.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate111.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.w !== undefined){let data3 = data.w;const _errs7 = errors;if(errors === _errs7){if((typeof data3 == "number") && (isFinite(data3))){if(data3 > 2400 || isNaN(data3)){validate111.errors = [{instancePath:instancePath+"/w",schemaPath:"#/properties/w/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data3 < 1 || isNaN(data3)){validate111.errors = [{instancePath:instancePath+"/w",schemaPath:"#/properties/w/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}else {validate111.errors = [{instancePath:instancePath+"/w",schemaPath:"#/properties/w/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.h !== undefined){let data4 = data.h;const _errs9 = errors;if(errors === _errs9){if((typeof data4 == "number") && (isFinite(data4))){if(data4 > 2400 || isNaN(data4)){validate111.errors = [{instancePath:instancePath+"/h",schemaPath:"#/properties/h/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data4 < 1 || isNaN(data4)){validate111.errors = [{instancePath:instancePath+"/h",schemaPath:"#/properties/h/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}else {validate111.errors = [{instancePath:instancePath+"/h",schemaPath:"#/properties/h/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs9 === errors;}else {var valid0 = true;}if(valid0){if(data.tone !== undefined){let data5 = data.tone;const _errs11 = errors;if(!(((((((((data5 === "gray") || (data5 === "purple")) || (data5 === "teal")) || (data5 === "coral")) || (data5 === "pink")) || (data5 === "blue")) || (data5 === "green")) || (data5 === "amber")) || (data5 === "red"))){validate111.errors = [{instancePath:instancePath+"/tone",schemaPath:"../common.schema.json#/$defs/tone/enum",keyword:"enum",params:{allowedValues: schema159.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs11 === errors;}else {var valid0 = true;}if(valid0){if(data.title !== undefined){let data6 = data.title;const _errs13 = errors;if(errors === _errs13){if(typeof data6 === "string"){if(func2(data6) > 200){validate111.errors = [{instancePath:instancePath+"/title",schemaPath:"#/properties/title/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}else {if(func2(data6) < 0){validate111.errors = [{instancePath:instancePath+"/title",schemaPath:"#/properties/title/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate111.errors = [{instancePath:instancePath+"/title",schemaPath:"#/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs13 === errors;}else {var valid0 = true;}if(valid0){if(data.sub !== undefined){let data7 = data.sub;const _errs15 = errors;const _errs16 = errors;let valid2 = false;let passing0 = null;const _errs17 = errors;if(errors === _errs17){if(typeof data7 === "string"){if(func2(data7) > 300){const err0 = {instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/oneOf/0/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}else {if(func2(data7) < 0){const err1 = {instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/oneOf/0/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}}}else {const err2 = {instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;}}var _valid0 = _errs17 === errors;if(_valid0){valid2 = true;passing0 = 0;}const _errs19 = errors;if(errors === _errs19){if(Array.isArray(data7)){if(data7.length > 6){const err3 = {instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 6},message:"must NOT have more than 6 items"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}else {if(data7.length < 1){const err4 = {instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/oneOf/1/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}else {var valid3 = true;const len0 = data7.length;for(let i0=0; i0 300){const err5 = {instancePath:instancePath+"/sub/" + i0,schemaPath:"#/properties/sub/oneOf/1/items/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}else {if(func2(data8) < 0){const err6 = {instancePath:instancePath+"/sub/" + i0,schemaPath:"#/properties/sub/oneOf/1/items/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}}else {const err7 = {instancePath:instancePath+"/sub/" + i0,schemaPath:"#/properties/sub/oneOf/1/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}var valid3 = _errs21 === errors;if(!valid3){break;}}}}}else {const err8 = {instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}}var _valid0 = _errs19 === errors;if(_valid0 && valid2){valid2 = false;passing0 = [passing0, 1];}else {if(_valid0){valid2 = true;passing0 = 1;}}if(!valid2){const err9 = {instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;validate111.errors = vErrors;return false;}else {errors = _errs16;if(vErrors !== null){if(_errs16){vErrors.length = _errs16;}else {vErrors = null;}}}var valid0 = _errs15 === errors;}else {var valid0 = true;}if(valid0){if(data.mono !== undefined){const _errs23 = errors;if(typeof data.mono !== "boolean"){validate111.errors = [{instancePath:instancePath+"/mono",schemaPath:"#/properties/mono/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs23 === errors;}else {var valid0 = true;}if(valid0){if(data.rx !== undefined){let data10 = data.rx;const _errs25 = errors;if(errors === _errs25){if((typeof data10 == "number") && (isFinite(data10))){if(data10 > 60 || isNaN(data10)){validate111.errors = [{instancePath:instancePath+"/rx",schemaPath:"#/properties/rx/maximum",keyword:"maximum",params:{comparison: "<=", limit: 60},message:"must be <= 60"}];return false;}else {if(data10 < 0 || isNaN(data10)){validate111.errors = [{instancePath:instancePath+"/rx",schemaPath:"#/properties/rx/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"}];return false;}}}else {validate111.errors = [{instancePath:instancePath+"/rx",schemaPath:"#/properties/rx/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs25 === errors;}else {var valid0 = true;}if(valid0){if(data.titleSize !== undefined){let data11 = data.titleSize;const _errs27 = errors;if(errors === _errs27){if((typeof data11 == "number") && (isFinite(data11))){if(data11 > 32 || isNaN(data11)){validate111.errors = [{instancePath:instancePath+"/titleSize",schemaPath:"#/properties/titleSize/maximum",keyword:"maximum",params:{comparison: "<=", limit: 32},message:"must be <= 32"}];return false;}else {if(data11 < 8 || isNaN(data11)){validate111.errors = [{instancePath:instancePath+"/titleSize",schemaPath:"#/properties/titleSize/minimum",keyword:"minimum",params:{comparison: ">=", limit: 8},message:"must be >= 8"}];return false;}}}else {validate111.errors = [{instancePath:instancePath+"/titleSize",schemaPath:"#/properties/titleSize/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs27 === errors;}else {var valid0 = true;}if(valid0){if(data.align !== undefined){let data12 = data.align;const _errs29 = errors;if(!((data12 === "start") || (data12 === "middle"))){validate111.errors = [{instancePath:instancePath+"/align",schemaPath:"#/properties/align/enum",keyword:"enum",params:{allowedValues: schema162.properties.align.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs29 === errors;}else {var valid0 = true;}if(valid0){if(data.select !== undefined){let data13 = data.select;const _errs30 = errors;const _errs31 = errors;if(errors === _errs31){if(typeof data13 === "string"){if(func2(data13) > 64){validate111.errors = [{instancePath:instancePath+"/select",schemaPath:"#/$defs/viewKey/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data13)){validate111.errors = [{instancePath:instancePath+"/select",schemaPath:"#/$defs/viewKey/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate111.errors = [{instancePath:instancePath+"/select",schemaPath:"#/$defs/viewKey/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs30 === errors;}else {var valid0 = true;}if(valid0){if(data.active !== undefined){let data14 = data.active;const _errs33 = errors;const _errs34 = errors;let valid5 = false;let passing1 = null;const _errs35 = errors;if(typeof data14 !== "boolean"){const err10 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;}var _valid1 = _errs35 === errors;if(_valid1){valid5 = true;passing1 = 0;}const _errs37 = errors;if(errors === _errs37){if(Array.isArray(data14)){if(data14.length > 20){const err11 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}else {var valid6 = true;const len1 = data14.length;for(let i1=0; i1 15 || isNaN(data15)){const err13 = {instancePath:instancePath+"/active/" + i1,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err13];}else {vErrors.push(err13);}errors++;}else {if(data15 < 0 || isNaN(data15)){const err14 = {instancePath:instancePath+"/active/" + i1,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}}}}var _valid2 = _errs41 === errors;if(_valid2){valid7 = true;passing2 = 0;}const _errs43 = errors;const _errs44 = errors;if(errors === _errs44){if(typeof data15 === "string"){if(func2(data15) > 64){const err15 = {instancePath:instancePath+"/active/" + i1,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}else {if(!pattern18.test(data15)){const err16 = {instancePath:instancePath+"/active/" + i1,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}}else {const err17 = {instancePath:instancePath+"/active/" + i1,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}var _valid2 = _errs43 === errors;if(_valid2 && valid7){valid7 = false;passing2 = [passing2, 1];}else {if(_valid2){valid7 = true;passing2 = 1;}}if(!valid7){const err18 = {instancePath:instancePath+"/active/" + i1,schemaPath:"#/properties/active/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing2},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}else {errors = _errs40;if(vErrors !== null){if(_errs40){vErrors.length = _errs40;}else {vErrors = null;}}}var valid6 = _errs39 === errors;if(!valid6){break;}}}}else {const err19 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}}var _valid1 = _errs37 === errors;if(_valid1 && valid5){valid5 = false;passing1 = [passing1, 1];}else {if(_valid1){valid5 = true;passing1 = 1;}}if(!valid5){const err20 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf",keyword:"oneOf",params:{passingSchemas: passing1},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;validate111.errors = vErrors;return false;}else {errors = _errs34;if(vErrors !== null){if(_errs34){vErrors.length = _errs34;}else {vErrors = null;}}}var valid0 = _errs33 === errors;}else {var valid0 = true;}if(valid0){if(data.hot !== undefined){let data16 = data.hot;const _errs46 = errors;const _errs47 = errors;let valid9 = false;let passing3 = null;const _errs48 = errors;if(typeof data16 !== "boolean"){const err21 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;}var _valid3 = _errs48 === errors;if(_valid3){valid9 = true;passing3 = 0;}const _errs50 = errors;if(errors === _errs50){if(Array.isArray(data16)){if(data16.length > 20){const err22 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err22];}else {vErrors.push(err22);}errors++;}else {var valid10 = true;const len2 = data16.length;for(let i2=0; i2 15 || isNaN(data17)){const err24 = {instancePath:instancePath+"/hot/" + i2,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}else {if(data17 < 0 || isNaN(data17)){const err25 = {instancePath:instancePath+"/hot/" + i2,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}}}}var _valid4 = _errs54 === errors;if(_valid4){valid11 = true;passing4 = 0;}const _errs56 = errors;const _errs57 = errors;if(errors === _errs57){if(typeof data17 === "string"){if(func2(data17) > 64){const err26 = {instancePath:instancePath+"/hot/" + i2,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}else {if(!pattern18.test(data17)){const err27 = {instancePath:instancePath+"/hot/" + i2,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}}else {const err28 = {instancePath:instancePath+"/hot/" + i2,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;}}var _valid4 = _errs56 === errors;if(_valid4 && valid11){valid11 = false;passing4 = [passing4, 1];}else {if(_valid4){valid11 = true;passing4 = 1;}}if(!valid11){const err29 = {instancePath:instancePath+"/hot/" + i2,schemaPath:"#/properties/hot/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing4},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}else {errors = _errs53;if(vErrors !== null){if(_errs53){vErrors.length = _errs53;}else {vErrors = null;}}}var valid10 = _errs52 === errors;if(!valid10){break;}}}}else {const err30 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;}}var _valid3 = _errs50 === errors;if(_valid3 && valid9){valid9 = false;passing3 = [passing3, 1];}else {if(_valid3){valid9 = true;passing3 = 1;}}if(!valid9){const err31 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf",keyword:"oneOf",params:{passingSchemas: passing3},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;validate111.errors = vErrors;return false;}else {errors = _errs47;if(vErrors !== null){if(_errs47){vErrors.length = _errs47;}else {vErrors = null;}}}var valid0 = _errs46 === errors;}else {var valid0 = true;}if(valid0){if(data.dim !== undefined){const _errs59 = errors;if(typeof data.dim !== "boolean"){validate111.errors = [{instancePath:instancePath+"/dim",schemaPath:"#/properties/dim/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs59 === errors;}else {var valid0 = true;}if(valid0){if(data.visible !== undefined){let data19 = data.visible;const _errs61 = errors;if(errors === _errs61){if(Array.isArray(data19)){if(data19.length > 20){validate111.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid13 = true;const len3 = data19.length;for(let i3=0; i3 15 || isNaN(data20)){const err33 = {instancePath:instancePath+"/visible/" + i3,schemaPath:"#/properties/visible/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}else {if(data20 < 0 || isNaN(data20)){const err34 = {instancePath:instancePath+"/visible/" + i3,schemaPath:"#/properties/visible/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}}}}var _valid5 = _errs65 === errors;if(_valid5){valid14 = true;passing5 = 0;}const _errs67 = errors;const _errs68 = errors;if(errors === _errs68){if(typeof data20 === "string"){if(func2(data20) > 64){const err35 = {instancePath:instancePath+"/visible/" + i3,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}else {if(!pattern18.test(data20)){const err36 = {instancePath:instancePath+"/visible/" + i3,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}}}else {const err37 = {instancePath:instancePath+"/visible/" + i3,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}}var _valid5 = _errs67 === errors;if(_valid5 && valid14){valid14 = false;passing5 = [passing5, 1];}else {if(_valid5){valid14 = true;passing5 = 1;}}if(!valid14){const err38 = {instancePath:instancePath+"/visible/" + i3,schemaPath:"#/properties/visible/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing5},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;validate111.errors = vErrors;return false;}else {errors = _errs64;if(vErrors !== null){if(_errs64){vErrors.length = _errs64;}else {vErrors = null;}}}var valid13 = _errs63 === errors;if(!valid13){break;}}}}else {validate111.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs61 === errors;}else {var valid0 = true;}if(valid0){if(data.overrides !== undefined){let data21 = data.overrides;const _errs70 = errors;if(errors === _errs70){if(data21 && typeof data21 == "object" && !Array.isArray(data21)){if(Object.keys(data21).length > 6){validate111.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/maxProperties",keyword:"maxProperties",params:{limit: 6},message:"must NOT have more than 6 properties"}];return false;}else {for(const key1 in data21){const _errs72 = errors;if(!(((((((key1 === "title") || (key1 === "sub")) || (key1 === "label")) || (key1 === "text")) || (key1 === "n")) || (key1 === "dashed")) || (key1 === "muted"))){const err39 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames/enum",keyword:"enum",params:{allowedValues: schema162.properties.overrides.propertyNames.enum},message:"must be equal to one of the allowed values",propertyName:key1};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}var valid16 = _errs72 === errors;if(!valid16){const err40 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames",keyword:"propertyNames",params:{propertyName: key1},message:"property name must be valid"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;validate111.errors = vErrors;return false;break;}}if(valid16){for(const key2 in data21){let data22 = data21[key2];const _errs74 = errors;if(errors === _errs74){if(data22 && typeof data22 == "object" && !Array.isArray(data22)){if(Object.keys(data22).length > 20){validate111.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/maxProperties",keyword:"maxProperties",params:{limit: 20},message:"must NOT have more than 20 properties"}];return false;}else {for(const key3 in data22){let data23 = data22[key3];const _errs77 = errors;const _errs78 = errors;let valid19 = false;let passing6 = null;const _errs79 = errors;if(errors === _errs79){if(typeof data23 === "string"){if(func2(data23) > 300){const err41 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;}else {if(func2(data23) < 0){const err42 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err42];}else {vErrors.push(err42);}errors++;}}}else {const err43 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err43];}else {vErrors.push(err43);}errors++;}}var _valid6 = _errs79 === errors;if(_valid6){valid19 = true;passing6 = 0;}const _errs81 = errors;if(!((typeof data23 == "number") && (isFinite(data23)))){const err44 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/1/type",keyword:"type",params:{type: "number"},message:"must be number"};if(vErrors === null){vErrors = [err44];}else {vErrors.push(err44);}errors++;}var _valid6 = _errs81 === errors;if(_valid6 && valid19){valid19 = false;passing6 = [passing6, 1];}else {if(_valid6){valid19 = true;passing6 = 1;}const _errs83 = errors;if(typeof data23 !== "boolean"){const err45 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/2/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err45];}else {vErrors.push(err45);}errors++;}var _valid6 = _errs83 === errors;if(_valid6 && valid19){valid19 = false;passing6 = [passing6, 2];}else {if(_valid6){valid19 = true;passing6 = 2;}const _errs85 = errors;if(errors === _errs85){if(Array.isArray(data23)){if(data23.length > 3){const err46 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/maxItems",keyword:"maxItems",params:{limit: 3},message:"must NOT have more than 3 items"};if(vErrors === null){vErrors = [err46];}else {vErrors.push(err46);}errors++;}else {var valid20 = true;const len4 = data23.length;for(let i4=0; i4 300){const err47 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i4,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err47];}else {vErrors.push(err47);}errors++;}else {if(func2(data24) < 0){const err48 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i4,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err48];}else {vErrors.push(err48);}errors++;}}}else {const err49 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i4,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err49];}else {vErrors.push(err49);}errors++;}}var valid20 = _errs87 === errors;if(!valid20){break;}}}}else {const err50 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err50];}else {vErrors.push(err50);}errors++;}}var _valid6 = _errs85 === errors;if(_valid6 && valid19){valid19 = false;passing6 = [passing6, 3];}else {if(_valid6){valid19 = true;passing6 = 3;}}}}if(!valid19){const err51 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf",keyword:"oneOf",params:{passingSchemas: passing6},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err51];}else {vErrors.push(err51);}errors++;validate111.errors = vErrors;return false;}else {errors = _errs78;if(vErrors !== null){if(_errs78){vErrors.length = _errs78;}else {vErrors = null;}}}var valid18 = _errs77 === errors;if(!valid18){break;}}}}else {validate111.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid17 = _errs74 === errors;if(!valid17){break;}}}}}else {validate111.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs70 === errors;}else {var valid0 = true;}}}}}}}}}}}}}}}}}}}}}else {validate111.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate111.errors = vErrors;return errors === 0;}validate111.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema168 = {"type":"object","additionalProperties":false,"required":["kind","x","y","w","h"],"properties":{"kind":{"const":"group"},"x":{"type":"number","minimum":-400,"maximum":2400},"y":{"type":"number","minimum":-400,"maximum":2400},"w":{"type":"number","minimum":1,"maximum":2400},"h":{"type":"number","minimum":1,"maximum":2400},"tone":{"$ref":"../common.schema.json#/$defs/tone"},"label":{"type":"string","minLength":0,"maxLength":200},"sub":{"type":"string","minLength":0,"maxLength":200},"solid":{"type":"boolean"},"select":{"$ref":"#/$defs/viewKey"},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}};function validate113(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate113.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((((data.kind === undefined) && (missing0 = "kind")) || ((data.x === undefined) && (missing0 = "x"))) || ((data.y === undefined) && (missing0 = "y"))) || ((data.w === undefined) && (missing0 = "w"))) || ((data.h === undefined) && (missing0 = "h"))){validate113.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema168.properties, key0))){validate113.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.kind !== undefined){const _errs2 = errors;if("group" !== data.kind){validate113.errors = [{instancePath:instancePath+"/kind",schemaPath:"#/properties/kind/const",keyword:"const",params:{allowedValue: "group"},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.x !== undefined){let data1 = data.x;const _errs3 = errors;if(errors === _errs3){if((typeof data1 == "number") && (isFinite(data1))){if(data1 > 2400 || isNaN(data1)){validate113.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data1 < -400 || isNaN(data1)){validate113.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate113.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.y !== undefined){let data2 = data.y;const _errs5 = errors;if(errors === _errs5){if((typeof data2 == "number") && (isFinite(data2))){if(data2 > 2400 || isNaN(data2)){validate113.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data2 < -400 || isNaN(data2)){validate113.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate113.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.w !== undefined){let data3 = data.w;const _errs7 = errors;if(errors === _errs7){if((typeof data3 == "number") && (isFinite(data3))){if(data3 > 2400 || isNaN(data3)){validate113.errors = [{instancePath:instancePath+"/w",schemaPath:"#/properties/w/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data3 < 1 || isNaN(data3)){validate113.errors = [{instancePath:instancePath+"/w",schemaPath:"#/properties/w/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}else {validate113.errors = [{instancePath:instancePath+"/w",schemaPath:"#/properties/w/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.h !== undefined){let data4 = data.h;const _errs9 = errors;if(errors === _errs9){if((typeof data4 == "number") && (isFinite(data4))){if(data4 > 2400 || isNaN(data4)){validate113.errors = [{instancePath:instancePath+"/h",schemaPath:"#/properties/h/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data4 < 1 || isNaN(data4)){validate113.errors = [{instancePath:instancePath+"/h",schemaPath:"#/properties/h/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}else {validate113.errors = [{instancePath:instancePath+"/h",schemaPath:"#/properties/h/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs9 === errors;}else {var valid0 = true;}if(valid0){if(data.tone !== undefined){let data5 = data.tone;const _errs11 = errors;if(!(((((((((data5 === "gray") || (data5 === "purple")) || (data5 === "teal")) || (data5 === "coral")) || (data5 === "pink")) || (data5 === "blue")) || (data5 === "green")) || (data5 === "amber")) || (data5 === "red"))){validate113.errors = [{instancePath:instancePath+"/tone",schemaPath:"../common.schema.json#/$defs/tone/enum",keyword:"enum",params:{allowedValues: schema159.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs11 === errors;}else {var valid0 = true;}if(valid0){if(data.label !== undefined){let data6 = data.label;const _errs13 = errors;if(errors === _errs13){if(typeof data6 === "string"){if(func2(data6) > 200){validate113.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}else {if(func2(data6) < 0){validate113.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate113.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs13 === errors;}else {var valid0 = true;}if(valid0){if(data.sub !== undefined){let data7 = data.sub;const _errs15 = errors;if(errors === _errs15){if(typeof data7 === "string"){if(func2(data7) > 200){validate113.errors = [{instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}else {if(func2(data7) < 0){validate113.errors = [{instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate113.errors = [{instancePath:instancePath+"/sub",schemaPath:"#/properties/sub/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs15 === errors;}else {var valid0 = true;}if(valid0){if(data.solid !== undefined){const _errs17 = errors;if(typeof data.solid !== "boolean"){validate113.errors = [{instancePath:instancePath+"/solid",schemaPath:"#/properties/solid/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs17 === errors;}else {var valid0 = true;}if(valid0){if(data.select !== undefined){let data9 = data.select;const _errs19 = errors;const _errs20 = errors;if(errors === _errs20){if(typeof data9 === "string"){if(func2(data9) > 64){validate113.errors = [{instancePath:instancePath+"/select",schemaPath:"#/$defs/viewKey/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data9)){validate113.errors = [{instancePath:instancePath+"/select",schemaPath:"#/$defs/viewKey/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate113.errors = [{instancePath:instancePath+"/select",schemaPath:"#/$defs/viewKey/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs19 === errors;}else {var valid0 = true;}if(valid0){if(data.active !== undefined){let data10 = data.active;const _errs22 = errors;const _errs23 = errors;let valid3 = false;let passing0 = null;const _errs24 = errors;if(typeof data10 !== "boolean"){const err0 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}var _valid0 = _errs24 === errors;if(_valid0){valid3 = true;passing0 = 0;}const _errs26 = errors;if(errors === _errs26){if(Array.isArray(data10)){if(data10.length > 20){const err1 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}else {var valid4 = true;const len0 = data10.length;for(let i0=0; i0 15 || isNaN(data11)){const err3 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}else {if(data11 < 0 || isNaN(data11)){const err4 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}}}var _valid1 = _errs30 === errors;if(_valid1){valid5 = true;passing1 = 0;}const _errs32 = errors;const _errs33 = errors;if(errors === _errs33){if(typeof data11 === "string"){if(func2(data11) > 64){const err5 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}else {if(!pattern18.test(data11)){const err6 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}}else {const err7 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}var _valid1 = _errs32 === errors;if(_valid1 && valid5){valid5 = false;passing1 = [passing1, 1];}else {if(_valid1){valid5 = true;passing1 = 1;}}if(!valid5){const err8 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing1},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}else {errors = _errs29;if(vErrors !== null){if(_errs29){vErrors.length = _errs29;}else {vErrors = null;}}}var valid4 = _errs28 === errors;if(!valid4){break;}}}}else {const err9 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}var _valid0 = _errs26 === errors;if(_valid0 && valid3){valid3 = false;passing0 = [passing0, 1];}else {if(_valid0){valid3 = true;passing0 = 1;}}if(!valid3){const err10 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;validate113.errors = vErrors;return false;}else {errors = _errs23;if(vErrors !== null){if(_errs23){vErrors.length = _errs23;}else {vErrors = null;}}}var valid0 = _errs22 === errors;}else {var valid0 = true;}if(valid0){if(data.hot !== undefined){let data12 = data.hot;const _errs35 = errors;const _errs36 = errors;let valid7 = false;let passing2 = null;const _errs37 = errors;if(typeof data12 !== "boolean"){const err11 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}var _valid2 = _errs37 === errors;if(_valid2){valid7 = true;passing2 = 0;}const _errs39 = errors;if(errors === _errs39){if(Array.isArray(data12)){if(data12.length > 20){const err12 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}else {var valid8 = true;const len1 = data12.length;for(let i1=0; i1 15 || isNaN(data13)){const err14 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}else {if(data13 < 0 || isNaN(data13)){const err15 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}}var _valid3 = _errs43 === errors;if(_valid3){valid9 = true;passing3 = 0;}const _errs45 = errors;const _errs46 = errors;if(errors === _errs46){if(typeof data13 === "string"){if(func2(data13) > 64){const err16 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}else {if(!pattern18.test(data13)){const err17 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}else {const err18 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}var _valid3 = _errs45 === errors;if(_valid3 && valid9){valid9 = false;passing3 = [passing3, 1];}else {if(_valid3){valid9 = true;passing3 = 1;}}if(!valid9){const err19 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing3},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}else {errors = _errs42;if(vErrors !== null){if(_errs42){vErrors.length = _errs42;}else {vErrors = null;}}}var valid8 = _errs41 === errors;if(!valid8){break;}}}}else {const err20 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}var _valid2 = _errs39 === errors;if(_valid2 && valid7){valid7 = false;passing2 = [passing2, 1];}else {if(_valid2){valid7 = true;passing2 = 1;}}if(!valid7){const err21 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf",keyword:"oneOf",params:{passingSchemas: passing2},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;validate113.errors = vErrors;return false;}else {errors = _errs36;if(vErrors !== null){if(_errs36){vErrors.length = _errs36;}else {vErrors = null;}}}var valid0 = _errs35 === errors;}else {var valid0 = true;}if(valid0){if(data.dim !== undefined){const _errs48 = errors;if(typeof data.dim !== "boolean"){validate113.errors = [{instancePath:instancePath+"/dim",schemaPath:"#/properties/dim/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs48 === errors;}else {var valid0 = true;}if(valid0){if(data.visible !== undefined){let data15 = data.visible;const _errs50 = errors;if(errors === _errs50){if(Array.isArray(data15)){if(data15.length > 20){validate113.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid11 = true;const len2 = data15.length;for(let i2=0; i2 15 || isNaN(data16)){const err23 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}else {if(data16 < 0 || isNaN(data16)){const err24 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}}}var _valid4 = _errs54 === errors;if(_valid4){valid12 = true;passing4 = 0;}const _errs56 = errors;const _errs57 = errors;if(errors === _errs57){if(typeof data16 === "string"){if(func2(data16) > 64){const err25 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}else {if(!pattern18.test(data16)){const err26 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}}else {const err27 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}var _valid4 = _errs56 === errors;if(_valid4 && valid12){valid12 = false;passing4 = [passing4, 1];}else {if(_valid4){valid12 = true;passing4 = 1;}}if(!valid12){const err28 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing4},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;validate113.errors = vErrors;return false;}else {errors = _errs53;if(vErrors !== null){if(_errs53){vErrors.length = _errs53;}else {vErrors = null;}}}var valid11 = _errs52 === errors;if(!valid11){break;}}}}else {validate113.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs50 === errors;}else {var valid0 = true;}if(valid0){if(data.overrides !== undefined){let data17 = data.overrides;const _errs59 = errors;if(errors === _errs59){if(data17 && typeof data17 == "object" && !Array.isArray(data17)){if(Object.keys(data17).length > 6){validate113.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/maxProperties",keyword:"maxProperties",params:{limit: 6},message:"must NOT have more than 6 properties"}];return false;}else {for(const key1 in data17){const _errs61 = errors;if(!(((((((key1 === "title") || (key1 === "sub")) || (key1 === "label")) || (key1 === "text")) || (key1 === "n")) || (key1 === "dashed")) || (key1 === "muted"))){const err29 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames/enum",keyword:"enum",params:{allowedValues: schema168.properties.overrides.propertyNames.enum},message:"must be equal to one of the allowed values",propertyName:key1};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}var valid14 = _errs61 === errors;if(!valid14){const err30 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames",keyword:"propertyNames",params:{propertyName: key1},message:"property name must be valid"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;validate113.errors = vErrors;return false;break;}}if(valid14){for(const key2 in data17){let data18 = data17[key2];const _errs63 = errors;if(errors === _errs63){if(data18 && typeof data18 == "object" && !Array.isArray(data18)){if(Object.keys(data18).length > 20){validate113.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/maxProperties",keyword:"maxProperties",params:{limit: 20},message:"must NOT have more than 20 properties"}];return false;}else {for(const key3 in data18){let data19 = data18[key3];const _errs66 = errors;const _errs67 = errors;let valid17 = false;let passing5 = null;const _errs68 = errors;if(errors === _errs68){if(typeof data19 === "string"){if(func2(data19) > 300){const err31 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}else {if(func2(data19) < 0){const err32 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}}else {const err33 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}var _valid5 = _errs68 === errors;if(_valid5){valid17 = true;passing5 = 0;}const _errs70 = errors;if(!((typeof data19 == "number") && (isFinite(data19)))){const err34 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/1/type",keyword:"type",params:{type: "number"},message:"must be number"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}var _valid5 = _errs70 === errors;if(_valid5 && valid17){valid17 = false;passing5 = [passing5, 1];}else {if(_valid5){valid17 = true;passing5 = 1;}const _errs72 = errors;if(typeof data19 !== "boolean"){const err35 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/2/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}var _valid5 = _errs72 === errors;if(_valid5 && valid17){valid17 = false;passing5 = [passing5, 2];}else {if(_valid5){valid17 = true;passing5 = 2;}const _errs74 = errors;if(errors === _errs74){if(Array.isArray(data19)){if(data19.length > 3){const err36 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/maxItems",keyword:"maxItems",params:{limit: 3},message:"must NOT have more than 3 items"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}else {var valid18 = true;const len3 = data19.length;for(let i3=0; i3 300){const err37 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}else {if(func2(data20) < 0){const err38 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}}else {const err39 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}var valid18 = _errs76 === errors;if(!valid18){break;}}}}else {const err40 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}var _valid5 = _errs74 === errors;if(_valid5 && valid17){valid17 = false;passing5 = [passing5, 3];}else {if(_valid5){valid17 = true;passing5 = 3;}}}}if(!valid17){const err41 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf",keyword:"oneOf",params:{passingSchemas: passing5},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;validate113.errors = vErrors;return false;}else {errors = _errs67;if(vErrors !== null){if(_errs67){vErrors.length = _errs67;}else {vErrors = null;}}}var valid16 = _errs66 === errors;if(!valid16){break;}}}}else {validate113.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid15 = _errs63 === errors;if(!valid15){break;}}}}}else {validate113.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs59 === errors;}else {var valid0 = true;}}}}}}}}}}}}}}}}}}else {validate113.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate113.errors = vErrors;return errors === 0;}validate113.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema174 = {"type":"object","additionalProperties":false,"required":["kind","points"],"properties":{"kind":{"const":"arrow"},"points":{"type":"array","minItems":2,"maxItems":12,"items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"number","minimum":-400,"maximum":2400}}},"label":{"type":"string","minLength":0,"maxLength":120},"labelAt":{"type":"number","minimum":0,"maximum":1},"labelDx":{"type":"number","minimum":-400,"maximum":2400},"labelDy":{"type":"number","minimum":-400,"maximum":2400},"dashed":{"type":"boolean"},"both":{"type":"boolean"},"variant":{"enum":["ok","bad"]},"labelAnchor":{"enum":["start","middle","end"]},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}};function validate115(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate115.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.kind === undefined) && (missing0 = "kind")) || ((data.points === undefined) && (missing0 = "points"))){validate115.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema174.properties, key0))){validate115.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.kind !== undefined){const _errs2 = errors;if("arrow" !== data.kind){validate115.errors = [{instancePath:instancePath+"/kind",schemaPath:"#/properties/kind/const",keyword:"const",params:{allowedValue: "arrow"},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.points !== undefined){let data1 = data.points;const _errs3 = errors;if(errors === _errs3){if(Array.isArray(data1)){if(data1.length > 12){validate115.errors = [{instancePath:instancePath+"/points",schemaPath:"#/properties/points/maxItems",keyword:"maxItems",params:{limit: 12},message:"must NOT have more than 12 items"}];return false;}else {if(data1.length < 2){validate115.errors = [{instancePath:instancePath+"/points",schemaPath:"#/properties/points/minItems",keyword:"minItems",params:{limit: 2},message:"must NOT have fewer than 2 items"}];return false;}else {var valid1 = true;const len0 = data1.length;for(let i0=0; i0 2){validate115.errors = [{instancePath:instancePath+"/points/" + i0,schemaPath:"#/properties/points/items/maxItems",keyword:"maxItems",params:{limit: 2},message:"must NOT have more than 2 items"}];return false;}else {if(data2.length < 2){validate115.errors = [{instancePath:instancePath+"/points/" + i0,schemaPath:"#/properties/points/items/minItems",keyword:"minItems",params:{limit: 2},message:"must NOT have fewer than 2 items"}];return false;}else {var valid2 = true;const len1 = data2.length;for(let i1=0; i1 2400 || isNaN(data3)){validate115.errors = [{instancePath:instancePath+"/points/" + i0+"/" + i1,schemaPath:"#/properties/points/items/items/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data3 < -400 || isNaN(data3)){validate115.errors = [{instancePath:instancePath+"/points/" + i0+"/" + i1,schemaPath:"#/properties/points/items/items/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate115.errors = [{instancePath:instancePath+"/points/" + i0+"/" + i1,schemaPath:"#/properties/points/items/items/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid2 = _errs7 === errors;if(!valid2){break;}}}}}else {validate115.errors = [{instancePath:instancePath+"/points/" + i0,schemaPath:"#/properties/points/items/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}}else {validate115.errors = [{instancePath:instancePath+"/points",schemaPath:"#/properties/points/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.label !== undefined){let data4 = data.label;const _errs9 = errors;if(errors === _errs9){if(typeof data4 === "string"){if(func2(data4) > 120){validate115.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/maxLength",keyword:"maxLength",params:{limit: 120},message:"must NOT have more than 120 characters"}];return false;}else {if(func2(data4) < 0){validate115.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate115.errors = [{instancePath:instancePath+"/label",schemaPath:"#/properties/label/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs9 === errors;}else {var valid0 = true;}if(valid0){if(data.labelAt !== undefined){let data5 = data.labelAt;const _errs11 = errors;if(errors === _errs11){if((typeof data5 == "number") && (isFinite(data5))){if(data5 > 1 || isNaN(data5)){validate115.errors = [{instancePath:instancePath+"/labelAt",schemaPath:"#/properties/labelAt/maximum",keyword:"maximum",params:{comparison: "<=", limit: 1},message:"must be <= 1"}];return false;}else {if(data5 < 0 || isNaN(data5)){validate115.errors = [{instancePath:instancePath+"/labelAt",schemaPath:"#/properties/labelAt/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"}];return false;}}}else {validate115.errors = [{instancePath:instancePath+"/labelAt",schemaPath:"#/properties/labelAt/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs11 === errors;}else {var valid0 = true;}if(valid0){if(data.labelDx !== undefined){let data6 = data.labelDx;const _errs13 = errors;if(errors === _errs13){if((typeof data6 == "number") && (isFinite(data6))){if(data6 > 2400 || isNaN(data6)){validate115.errors = [{instancePath:instancePath+"/labelDx",schemaPath:"#/properties/labelDx/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data6 < -400 || isNaN(data6)){validate115.errors = [{instancePath:instancePath+"/labelDx",schemaPath:"#/properties/labelDx/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate115.errors = [{instancePath:instancePath+"/labelDx",schemaPath:"#/properties/labelDx/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs13 === errors;}else {var valid0 = true;}if(valid0){if(data.labelDy !== undefined){let data7 = data.labelDy;const _errs15 = errors;if(errors === _errs15){if((typeof data7 == "number") && (isFinite(data7))){if(data7 > 2400 || isNaN(data7)){validate115.errors = [{instancePath:instancePath+"/labelDy",schemaPath:"#/properties/labelDy/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data7 < -400 || isNaN(data7)){validate115.errors = [{instancePath:instancePath+"/labelDy",schemaPath:"#/properties/labelDy/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate115.errors = [{instancePath:instancePath+"/labelDy",schemaPath:"#/properties/labelDy/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs15 === errors;}else {var valid0 = true;}if(valid0){if(data.dashed !== undefined){const _errs17 = errors;if(typeof data.dashed !== "boolean"){validate115.errors = [{instancePath:instancePath+"/dashed",schemaPath:"#/properties/dashed/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs17 === errors;}else {var valid0 = true;}if(valid0){if(data.both !== undefined){const _errs19 = errors;if(typeof data.both !== "boolean"){validate115.errors = [{instancePath:instancePath+"/both",schemaPath:"#/properties/both/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs19 === errors;}else {var valid0 = true;}if(valid0){if(data.variant !== undefined){let data10 = data.variant;const _errs21 = errors;if(!((data10 === "ok") || (data10 === "bad"))){validate115.errors = [{instancePath:instancePath+"/variant",schemaPath:"#/properties/variant/enum",keyword:"enum",params:{allowedValues: schema174.properties.variant.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs21 === errors;}else {var valid0 = true;}if(valid0){if(data.labelAnchor !== undefined){let data11 = data.labelAnchor;const _errs22 = errors;if(!(((data11 === "start") || (data11 === "middle")) || (data11 === "end"))){validate115.errors = [{instancePath:instancePath+"/labelAnchor",schemaPath:"#/properties/labelAnchor/enum",keyword:"enum",params:{allowedValues: schema174.properties.labelAnchor.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs22 === errors;}else {var valid0 = true;}if(valid0){if(data.active !== undefined){let data12 = data.active;const _errs23 = errors;const _errs24 = errors;let valid3 = false;let passing0 = null;const _errs25 = errors;if(typeof data12 !== "boolean"){const err0 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}var _valid0 = _errs25 === errors;if(_valid0){valid3 = true;passing0 = 0;}const _errs27 = errors;if(errors === _errs27){if(Array.isArray(data12)){if(data12.length > 20){const err1 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}else {var valid4 = true;const len2 = data12.length;for(let i2=0; i2 15 || isNaN(data13)){const err3 = {instancePath:instancePath+"/active/" + i2,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}else {if(data13 < 0 || isNaN(data13)){const err4 = {instancePath:instancePath+"/active/" + i2,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}}}var _valid1 = _errs31 === errors;if(_valid1){valid5 = true;passing1 = 0;}const _errs33 = errors;const _errs34 = errors;if(errors === _errs34){if(typeof data13 === "string"){if(func2(data13) > 64){const err5 = {instancePath:instancePath+"/active/" + i2,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}else {if(!pattern18.test(data13)){const err6 = {instancePath:instancePath+"/active/" + i2,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}}else {const err7 = {instancePath:instancePath+"/active/" + i2,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}var _valid1 = _errs33 === errors;if(_valid1 && valid5){valid5 = false;passing1 = [passing1, 1];}else {if(_valid1){valid5 = true;passing1 = 1;}}if(!valid5){const err8 = {instancePath:instancePath+"/active/" + i2,schemaPath:"#/properties/active/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing1},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}else {errors = _errs30;if(vErrors !== null){if(_errs30){vErrors.length = _errs30;}else {vErrors = null;}}}var valid4 = _errs29 === errors;if(!valid4){break;}}}}else {const err9 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}var _valid0 = _errs27 === errors;if(_valid0 && valid3){valid3 = false;passing0 = [passing0, 1];}else {if(_valid0){valid3 = true;passing0 = 1;}}if(!valid3){const err10 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;validate115.errors = vErrors;return false;}else {errors = _errs24;if(vErrors !== null){if(_errs24){vErrors.length = _errs24;}else {vErrors = null;}}}var valid0 = _errs23 === errors;}else {var valid0 = true;}if(valid0){if(data.hot !== undefined){let data14 = data.hot;const _errs36 = errors;const _errs37 = errors;let valid7 = false;let passing2 = null;const _errs38 = errors;if(typeof data14 !== "boolean"){const err11 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}var _valid2 = _errs38 === errors;if(_valid2){valid7 = true;passing2 = 0;}const _errs40 = errors;if(errors === _errs40){if(Array.isArray(data14)){if(data14.length > 20){const err12 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}else {var valid8 = true;const len3 = data14.length;for(let i3=0; i3 15 || isNaN(data15)){const err14 = {instancePath:instancePath+"/hot/" + i3,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}else {if(data15 < 0 || isNaN(data15)){const err15 = {instancePath:instancePath+"/hot/" + i3,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}}var _valid3 = _errs44 === errors;if(_valid3){valid9 = true;passing3 = 0;}const _errs46 = errors;const _errs47 = errors;if(errors === _errs47){if(typeof data15 === "string"){if(func2(data15) > 64){const err16 = {instancePath:instancePath+"/hot/" + i3,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}else {if(!pattern18.test(data15)){const err17 = {instancePath:instancePath+"/hot/" + i3,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}else {const err18 = {instancePath:instancePath+"/hot/" + i3,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}var _valid3 = _errs46 === errors;if(_valid3 && valid9){valid9 = false;passing3 = [passing3, 1];}else {if(_valid3){valid9 = true;passing3 = 1;}}if(!valid9){const err19 = {instancePath:instancePath+"/hot/" + i3,schemaPath:"#/properties/hot/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing3},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}else {errors = _errs43;if(vErrors !== null){if(_errs43){vErrors.length = _errs43;}else {vErrors = null;}}}var valid8 = _errs42 === errors;if(!valid8){break;}}}}else {const err20 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}var _valid2 = _errs40 === errors;if(_valid2 && valid7){valid7 = false;passing2 = [passing2, 1];}else {if(_valid2){valid7 = true;passing2 = 1;}}if(!valid7){const err21 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf",keyword:"oneOf",params:{passingSchemas: passing2},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;validate115.errors = vErrors;return false;}else {errors = _errs37;if(vErrors !== null){if(_errs37){vErrors.length = _errs37;}else {vErrors = null;}}}var valid0 = _errs36 === errors;}else {var valid0 = true;}if(valid0){if(data.dim !== undefined){const _errs49 = errors;if(typeof data.dim !== "boolean"){validate115.errors = [{instancePath:instancePath+"/dim",schemaPath:"#/properties/dim/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs49 === errors;}else {var valid0 = true;}if(valid0){if(data.visible !== undefined){let data17 = data.visible;const _errs51 = errors;if(errors === _errs51){if(Array.isArray(data17)){if(data17.length > 20){validate115.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid11 = true;const len4 = data17.length;for(let i4=0; i4 15 || isNaN(data18)){const err23 = {instancePath:instancePath+"/visible/" + i4,schemaPath:"#/properties/visible/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}else {if(data18 < 0 || isNaN(data18)){const err24 = {instancePath:instancePath+"/visible/" + i4,schemaPath:"#/properties/visible/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}}}var _valid4 = _errs55 === errors;if(_valid4){valid12 = true;passing4 = 0;}const _errs57 = errors;const _errs58 = errors;if(errors === _errs58){if(typeof data18 === "string"){if(func2(data18) > 64){const err25 = {instancePath:instancePath+"/visible/" + i4,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}else {if(!pattern18.test(data18)){const err26 = {instancePath:instancePath+"/visible/" + i4,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}}else {const err27 = {instancePath:instancePath+"/visible/" + i4,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}var _valid4 = _errs57 === errors;if(_valid4 && valid12){valid12 = false;passing4 = [passing4, 1];}else {if(_valid4){valid12 = true;passing4 = 1;}}if(!valid12){const err28 = {instancePath:instancePath+"/visible/" + i4,schemaPath:"#/properties/visible/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing4},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;validate115.errors = vErrors;return false;}else {errors = _errs54;if(vErrors !== null){if(_errs54){vErrors.length = _errs54;}else {vErrors = null;}}}var valid11 = _errs53 === errors;if(!valid11){break;}}}}else {validate115.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs51 === errors;}else {var valid0 = true;}if(valid0){if(data.overrides !== undefined){let data19 = data.overrides;const _errs60 = errors;if(errors === _errs60){if(data19 && typeof data19 == "object" && !Array.isArray(data19)){if(Object.keys(data19).length > 6){validate115.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/maxProperties",keyword:"maxProperties",params:{limit: 6},message:"must NOT have more than 6 properties"}];return false;}else {for(const key1 in data19){const _errs62 = errors;if(!(((((((key1 === "title") || (key1 === "sub")) || (key1 === "label")) || (key1 === "text")) || (key1 === "n")) || (key1 === "dashed")) || (key1 === "muted"))){const err29 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames/enum",keyword:"enum",params:{allowedValues: schema174.properties.overrides.propertyNames.enum},message:"must be equal to one of the allowed values",propertyName:key1};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}var valid14 = _errs62 === errors;if(!valid14){const err30 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames",keyword:"propertyNames",params:{propertyName: key1},message:"property name must be valid"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;validate115.errors = vErrors;return false;break;}}if(valid14){for(const key2 in data19){let data20 = data19[key2];const _errs64 = errors;if(errors === _errs64){if(data20 && typeof data20 == "object" && !Array.isArray(data20)){if(Object.keys(data20).length > 20){validate115.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/maxProperties",keyword:"maxProperties",params:{limit: 20},message:"must NOT have more than 20 properties"}];return false;}else {for(const key3 in data20){let data21 = data20[key3];const _errs67 = errors;const _errs68 = errors;let valid17 = false;let passing5 = null;const _errs69 = errors;if(errors === _errs69){if(typeof data21 === "string"){if(func2(data21) > 300){const err31 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}else {if(func2(data21) < 0){const err32 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}}else {const err33 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}var _valid5 = _errs69 === errors;if(_valid5){valid17 = true;passing5 = 0;}const _errs71 = errors;if(!((typeof data21 == "number") && (isFinite(data21)))){const err34 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/1/type",keyword:"type",params:{type: "number"},message:"must be number"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}var _valid5 = _errs71 === errors;if(_valid5 && valid17){valid17 = false;passing5 = [passing5, 1];}else {if(_valid5){valid17 = true;passing5 = 1;}const _errs73 = errors;if(typeof data21 !== "boolean"){const err35 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/2/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}var _valid5 = _errs73 === errors;if(_valid5 && valid17){valid17 = false;passing5 = [passing5, 2];}else {if(_valid5){valid17 = true;passing5 = 2;}const _errs75 = errors;if(errors === _errs75){if(Array.isArray(data21)){if(data21.length > 3){const err36 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/maxItems",keyword:"maxItems",params:{limit: 3},message:"must NOT have more than 3 items"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}else {var valid18 = true;const len5 = data21.length;for(let i5=0; i5 300){const err37 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i5,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}else {if(func2(data22) < 0){const err38 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i5,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}}else {const err39 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i5,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}var valid18 = _errs77 === errors;if(!valid18){break;}}}}else {const err40 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}var _valid5 = _errs75 === errors;if(_valid5 && valid17){valid17 = false;passing5 = [passing5, 3];}else {if(_valid5){valid17 = true;passing5 = 3;}}}}if(!valid17){const err41 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf",keyword:"oneOf",params:{passingSchemas: passing5},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;validate115.errors = vErrors;return false;}else {errors = _errs68;if(vErrors !== null){if(_errs68){vErrors.length = _errs68;}else {vErrors = null;}}}var valid16 = _errs67 === errors;if(!valid16){break;}}}}else {validate115.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid15 = _errs64 === errors;if(!valid15){break;}}}}}else {validate115.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs60 === errors;}else {var valid0 = true;}}}}}}}}}}}}}}}}}}else {validate115.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate115.errors = vErrors;return errors === 0;}validate115.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema178 = {"type":"object","additionalProperties":false,"required":["kind","x","y","text"],"properties":{"kind":{"const":"label"},"x":{"type":"number","minimum":-400,"maximum":2400},"y":{"type":"number","minimum":-400,"maximum":2400},"text":{"type":"string","minLength":0,"maxLength":200},"anchor":{"enum":["start","middle","end"]},"size":{"type":"number","minimum":8,"maximum":32},"muted":{"type":"boolean"},"weight":{"type":"number","minimum":100,"maximum":900},"mono":{"type":"boolean"},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}};function validate117(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate117.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((((data.kind === undefined) && (missing0 = "kind")) || ((data.x === undefined) && (missing0 = "x"))) || ((data.y === undefined) && (missing0 = "y"))) || ((data.text === undefined) && (missing0 = "text"))){validate117.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema178.properties, key0))){validate117.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.kind !== undefined){const _errs2 = errors;if("label" !== data.kind){validate117.errors = [{instancePath:instancePath+"/kind",schemaPath:"#/properties/kind/const",keyword:"const",params:{allowedValue: "label"},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.x !== undefined){let data1 = data.x;const _errs3 = errors;if(errors === _errs3){if((typeof data1 == "number") && (isFinite(data1))){if(data1 > 2400 || isNaN(data1)){validate117.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data1 < -400 || isNaN(data1)){validate117.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate117.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.y !== undefined){let data2 = data.y;const _errs5 = errors;if(errors === _errs5){if((typeof data2 == "number") && (isFinite(data2))){if(data2 > 2400 || isNaN(data2)){validate117.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data2 < -400 || isNaN(data2)){validate117.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate117.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.text !== undefined){let data3 = data.text;const _errs7 = errors;if(errors === _errs7){if(typeof data3 === "string"){if(func2(data3) > 200){validate117.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}else {if(func2(data3) < 0){validate117.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate117.errors = [{instancePath:instancePath+"/text",schemaPath:"#/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.anchor !== undefined){let data4 = data.anchor;const _errs9 = errors;if(!(((data4 === "start") || (data4 === "middle")) || (data4 === "end"))){validate117.errors = [{instancePath:instancePath+"/anchor",schemaPath:"#/properties/anchor/enum",keyword:"enum",params:{allowedValues: schema178.properties.anchor.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs9 === errors;}else {var valid0 = true;}if(valid0){if(data.size !== undefined){let data5 = data.size;const _errs10 = errors;if(errors === _errs10){if((typeof data5 == "number") && (isFinite(data5))){if(data5 > 32 || isNaN(data5)){validate117.errors = [{instancePath:instancePath+"/size",schemaPath:"#/properties/size/maximum",keyword:"maximum",params:{comparison: "<=", limit: 32},message:"must be <= 32"}];return false;}else {if(data5 < 8 || isNaN(data5)){validate117.errors = [{instancePath:instancePath+"/size",schemaPath:"#/properties/size/minimum",keyword:"minimum",params:{comparison: ">=", limit: 8},message:"must be >= 8"}];return false;}}}else {validate117.errors = [{instancePath:instancePath+"/size",schemaPath:"#/properties/size/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs10 === errors;}else {var valid0 = true;}if(valid0){if(data.muted !== undefined){const _errs12 = errors;if(typeof data.muted !== "boolean"){validate117.errors = [{instancePath:instancePath+"/muted",schemaPath:"#/properties/muted/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs12 === errors;}else {var valid0 = true;}if(valid0){if(data.weight !== undefined){let data7 = data.weight;const _errs14 = errors;if(errors === _errs14){if((typeof data7 == "number") && (isFinite(data7))){if(data7 > 900 || isNaN(data7)){validate117.errors = [{instancePath:instancePath+"/weight",schemaPath:"#/properties/weight/maximum",keyword:"maximum",params:{comparison: "<=", limit: 900},message:"must be <= 900"}];return false;}else {if(data7 < 100 || isNaN(data7)){validate117.errors = [{instancePath:instancePath+"/weight",schemaPath:"#/properties/weight/minimum",keyword:"minimum",params:{comparison: ">=", limit: 100},message:"must be >= 100"}];return false;}}}else {validate117.errors = [{instancePath:instancePath+"/weight",schemaPath:"#/properties/weight/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs14 === errors;}else {var valid0 = true;}if(valid0){if(data.mono !== undefined){const _errs16 = errors;if(typeof data.mono !== "boolean"){validate117.errors = [{instancePath:instancePath+"/mono",schemaPath:"#/properties/mono/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs16 === errors;}else {var valid0 = true;}if(valid0){if(data.active !== undefined){let data9 = data.active;const _errs18 = errors;const _errs19 = errors;let valid1 = false;let passing0 = null;const _errs20 = errors;if(typeof data9 !== "boolean"){const err0 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}var _valid0 = _errs20 === errors;if(_valid0){valid1 = true;passing0 = 0;}const _errs22 = errors;if(errors === _errs22){if(Array.isArray(data9)){if(data9.length > 20){const err1 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}else {var valid2 = true;const len0 = data9.length;for(let i0=0; i0 15 || isNaN(data10)){const err3 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}else {if(data10 < 0 || isNaN(data10)){const err4 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}}}var _valid1 = _errs26 === errors;if(_valid1){valid3 = true;passing1 = 0;}const _errs28 = errors;const _errs29 = errors;if(errors === _errs29){if(typeof data10 === "string"){if(func2(data10) > 64){const err5 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}else {if(!pattern18.test(data10)){const err6 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}}else {const err7 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}var _valid1 = _errs28 === errors;if(_valid1 && valid3){valid3 = false;passing1 = [passing1, 1];}else {if(_valid1){valid3 = true;passing1 = 1;}}if(!valid3){const err8 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing1},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}else {errors = _errs25;if(vErrors !== null){if(_errs25){vErrors.length = _errs25;}else {vErrors = null;}}}var valid2 = _errs24 === errors;if(!valid2){break;}}}}else {const err9 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}var _valid0 = _errs22 === errors;if(_valid0 && valid1){valid1 = false;passing0 = [passing0, 1];}else {if(_valid0){valid1 = true;passing0 = 1;}}if(!valid1){const err10 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;validate117.errors = vErrors;return false;}else {errors = _errs19;if(vErrors !== null){if(_errs19){vErrors.length = _errs19;}else {vErrors = null;}}}var valid0 = _errs18 === errors;}else {var valid0 = true;}if(valid0){if(data.hot !== undefined){let data11 = data.hot;const _errs31 = errors;const _errs32 = errors;let valid5 = false;let passing2 = null;const _errs33 = errors;if(typeof data11 !== "boolean"){const err11 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}var _valid2 = _errs33 === errors;if(_valid2){valid5 = true;passing2 = 0;}const _errs35 = errors;if(errors === _errs35){if(Array.isArray(data11)){if(data11.length > 20){const err12 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}else {var valid6 = true;const len1 = data11.length;for(let i1=0; i1 15 || isNaN(data12)){const err14 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}else {if(data12 < 0 || isNaN(data12)){const err15 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}}var _valid3 = _errs39 === errors;if(_valid3){valid7 = true;passing3 = 0;}const _errs41 = errors;const _errs42 = errors;if(errors === _errs42){if(typeof data12 === "string"){if(func2(data12) > 64){const err16 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}else {if(!pattern18.test(data12)){const err17 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}else {const err18 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}var _valid3 = _errs41 === errors;if(_valid3 && valid7){valid7 = false;passing3 = [passing3, 1];}else {if(_valid3){valid7 = true;passing3 = 1;}}if(!valid7){const err19 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing3},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}else {errors = _errs38;if(vErrors !== null){if(_errs38){vErrors.length = _errs38;}else {vErrors = null;}}}var valid6 = _errs37 === errors;if(!valid6){break;}}}}else {const err20 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}var _valid2 = _errs35 === errors;if(_valid2 && valid5){valid5 = false;passing2 = [passing2, 1];}else {if(_valid2){valid5 = true;passing2 = 1;}}if(!valid5){const err21 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf",keyword:"oneOf",params:{passingSchemas: passing2},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;validate117.errors = vErrors;return false;}else {errors = _errs32;if(vErrors !== null){if(_errs32){vErrors.length = _errs32;}else {vErrors = null;}}}var valid0 = _errs31 === errors;}else {var valid0 = true;}if(valid0){if(data.dim !== undefined){const _errs44 = errors;if(typeof data.dim !== "boolean"){validate117.errors = [{instancePath:instancePath+"/dim",schemaPath:"#/properties/dim/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs44 === errors;}else {var valid0 = true;}if(valid0){if(data.visible !== undefined){let data14 = data.visible;const _errs46 = errors;if(errors === _errs46){if(Array.isArray(data14)){if(data14.length > 20){validate117.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid9 = true;const len2 = data14.length;for(let i2=0; i2 15 || isNaN(data15)){const err23 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}else {if(data15 < 0 || isNaN(data15)){const err24 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}}}var _valid4 = _errs50 === errors;if(_valid4){valid10 = true;passing4 = 0;}const _errs52 = errors;const _errs53 = errors;if(errors === _errs53){if(typeof data15 === "string"){if(func2(data15) > 64){const err25 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}else {if(!pattern18.test(data15)){const err26 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}}else {const err27 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}var _valid4 = _errs52 === errors;if(_valid4 && valid10){valid10 = false;passing4 = [passing4, 1];}else {if(_valid4){valid10 = true;passing4 = 1;}}if(!valid10){const err28 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing4},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;validate117.errors = vErrors;return false;}else {errors = _errs49;if(vErrors !== null){if(_errs49){vErrors.length = _errs49;}else {vErrors = null;}}}var valid9 = _errs48 === errors;if(!valid9){break;}}}}else {validate117.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs46 === errors;}else {var valid0 = true;}if(valid0){if(data.overrides !== undefined){let data16 = data.overrides;const _errs55 = errors;if(errors === _errs55){if(data16 && typeof data16 == "object" && !Array.isArray(data16)){if(Object.keys(data16).length > 6){validate117.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/maxProperties",keyword:"maxProperties",params:{limit: 6},message:"must NOT have more than 6 properties"}];return false;}else {for(const key1 in data16){const _errs57 = errors;if(!(((((((key1 === "title") || (key1 === "sub")) || (key1 === "label")) || (key1 === "text")) || (key1 === "n")) || (key1 === "dashed")) || (key1 === "muted"))){const err29 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames/enum",keyword:"enum",params:{allowedValues: schema178.properties.overrides.propertyNames.enum},message:"must be equal to one of the allowed values",propertyName:key1};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}var valid12 = _errs57 === errors;if(!valid12){const err30 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames",keyword:"propertyNames",params:{propertyName: key1},message:"property name must be valid"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;validate117.errors = vErrors;return false;break;}}if(valid12){for(const key2 in data16){let data17 = data16[key2];const _errs59 = errors;if(errors === _errs59){if(data17 && typeof data17 == "object" && !Array.isArray(data17)){if(Object.keys(data17).length > 20){validate117.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/maxProperties",keyword:"maxProperties",params:{limit: 20},message:"must NOT have more than 20 properties"}];return false;}else {for(const key3 in data17){let data18 = data17[key3];const _errs62 = errors;const _errs63 = errors;let valid15 = false;let passing5 = null;const _errs64 = errors;if(errors === _errs64){if(typeof data18 === "string"){if(func2(data18) > 300){const err31 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}else {if(func2(data18) < 0){const err32 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}}else {const err33 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}var _valid5 = _errs64 === errors;if(_valid5){valid15 = true;passing5 = 0;}const _errs66 = errors;if(!((typeof data18 == "number") && (isFinite(data18)))){const err34 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/1/type",keyword:"type",params:{type: "number"},message:"must be number"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}var _valid5 = _errs66 === errors;if(_valid5 && valid15){valid15 = false;passing5 = [passing5, 1];}else {if(_valid5){valid15 = true;passing5 = 1;}const _errs68 = errors;if(typeof data18 !== "boolean"){const err35 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/2/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}var _valid5 = _errs68 === errors;if(_valid5 && valid15){valid15 = false;passing5 = [passing5, 2];}else {if(_valid5){valid15 = true;passing5 = 2;}const _errs70 = errors;if(errors === _errs70){if(Array.isArray(data18)){if(data18.length > 3){const err36 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/maxItems",keyword:"maxItems",params:{limit: 3},message:"must NOT have more than 3 items"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}else {var valid16 = true;const len3 = data18.length;for(let i3=0; i3 300){const err37 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}else {if(func2(data19) < 0){const err38 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}}else {const err39 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}var valid16 = _errs72 === errors;if(!valid16){break;}}}}else {const err40 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}var _valid5 = _errs70 === errors;if(_valid5 && valid15){valid15 = false;passing5 = [passing5, 3];}else {if(_valid5){valid15 = true;passing5 = 3;}}}}if(!valid15){const err41 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf",keyword:"oneOf",params:{passingSchemas: passing5},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;validate117.errors = vErrors;return false;}else {errors = _errs63;if(vErrors !== null){if(_errs63){vErrors.length = _errs63;}else {vErrors = null;}}}var valid14 = _errs62 === errors;if(!valid14){break;}}}}else {validate117.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid13 = _errs59 === errors;if(!valid13){break;}}}}}else {validate117.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs55 === errors;}else {var valid0 = true;}}}}}}}}}}}}}}}}}else {validate117.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate117.errors = vErrors;return errors === 0;}validate117.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};const schema182 = {"type":"object","additionalProperties":false,"required":["kind","x","y"],"properties":{"kind":{"const":"badge"},"x":{"type":"number","minimum":-400,"maximum":2400},"y":{"type":"number","minimum":-400,"maximum":2400},"n":{"type":"integer","minimum":0,"maximum":99},"active":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"hot":{"oneOf":[{"type":"boolean"},{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}}]},"dim":{"type":"boolean"},"visible":{"type":"array","maxItems":20,"items":{"oneOf":[{"type":"integer","minimum":0,"maximum":15},{"$ref":"../common.schema.json#/$defs/id"}]}},"overrides":{"type":"object","maxProperties":6,"propertyNames":{"enum":["title","sub","label","text","n","dashed","muted"]},"additionalProperties":{"type":"object","maxProperties":20,"additionalProperties":{"oneOf":[{"type":"string","minLength":0,"maxLength":300},{"type":"number"},{"type":"boolean"},{"type":"array","maxItems":3,"items":{"type":"string","minLength":0,"maxLength":300}}]}}}}};function validate119(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate119.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((data.kind === undefined) && (missing0 = "kind")) || ((data.x === undefined) && (missing0 = "x"))) || ((data.y === undefined) && (missing0 = "y"))){validate119.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema182.properties, key0))){validate119.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.kind !== undefined){const _errs2 = errors;if("badge" !== data.kind){validate119.errors = [{instancePath:instancePath+"/kind",schemaPath:"#/properties/kind/const",keyword:"const",params:{allowedValue: "badge"},message:"must be equal to constant"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.x !== undefined){let data1 = data.x;const _errs3 = errors;if(errors === _errs3){if((typeof data1 == "number") && (isFinite(data1))){if(data1 > 2400 || isNaN(data1)){validate119.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data1 < -400 || isNaN(data1)){validate119.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate119.errors = [{instancePath:instancePath+"/x",schemaPath:"#/properties/x/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs3 === errors;}else {var valid0 = true;}if(valid0){if(data.y !== undefined){let data2 = data.y;const _errs5 = errors;if(errors === _errs5){if((typeof data2 == "number") && (isFinite(data2))){if(data2 > 2400 || isNaN(data2)){validate119.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/maximum",keyword:"maximum",params:{comparison: "<=", limit: 2400},message:"must be <= 2400"}];return false;}else {if(data2 < -400 || isNaN(data2)){validate119.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/minimum",keyword:"minimum",params:{comparison: ">=", limit: -400},message:"must be >= -400"}];return false;}}}else {validate119.errors = [{instancePath:instancePath+"/y",schemaPath:"#/properties/y/type",keyword:"type",params:{type: "number"},message:"must be number"}];return false;}}var valid0 = _errs5 === errors;}else {var valid0 = true;}if(valid0){if(data.n !== undefined){let data3 = data.n;const _errs7 = errors;if(!(((typeof data3 == "number") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))){validate119.errors = [{instancePath:instancePath+"/n",schemaPath:"#/properties/n/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs7){if((typeof data3 == "number") && (isFinite(data3))){if(data3 > 99 || isNaN(data3)){validate119.errors = [{instancePath:instancePath+"/n",schemaPath:"#/properties/n/maximum",keyword:"maximum",params:{comparison: "<=", limit: 99},message:"must be <= 99"}];return false;}else {if(data3 < 0 || isNaN(data3)){validate119.errors = [{instancePath:instancePath+"/n",schemaPath:"#/properties/n/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"}];return false;}}}}var valid0 = _errs7 === errors;}else {var valid0 = true;}if(valid0){if(data.active !== undefined){let data4 = data.active;const _errs9 = errors;const _errs10 = errors;let valid1 = false;let passing0 = null;const _errs11 = errors;if(typeof data4 !== "boolean"){const err0 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}var _valid0 = _errs11 === errors;if(_valid0){valid1 = true;passing0 = 0;}const _errs13 = errors;if(errors === _errs13){if(Array.isArray(data4)){if(data4.length > 20){const err1 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}else {var valid2 = true;const len0 = data4.length;for(let i0=0; i0 15 || isNaN(data5)){const err3 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}else {if(data5 < 0 || isNaN(data5)){const err4 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}}}}var _valid1 = _errs17 === errors;if(_valid1){valid3 = true;passing1 = 0;}const _errs19 = errors;const _errs20 = errors;if(errors === _errs20){if(typeof data5 === "string"){if(func2(data5) > 64){const err5 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;}else {if(!pattern18.test(data5)){const err6 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err6];}else {vErrors.push(err6);}errors++;}}}else {const err7 = {instancePath:instancePath+"/active/" + i0,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err7];}else {vErrors.push(err7);}errors++;}}var _valid1 = _errs19 === errors;if(_valid1 && valid3){valid3 = false;passing1 = [passing1, 1];}else {if(_valid1){valid3 = true;passing1 = 1;}}if(!valid3){const err8 = {instancePath:instancePath+"/active/" + i0,schemaPath:"#/properties/active/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing1},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err8];}else {vErrors.push(err8);}errors++;}else {errors = _errs16;if(vErrors !== null){if(_errs16){vErrors.length = _errs16;}else {vErrors = null;}}}var valid2 = _errs15 === errors;if(!valid2){break;}}}}else {const err9 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err9];}else {vErrors.push(err9);}errors++;}}var _valid0 = _errs13 === errors;if(_valid0 && valid1){valid1 = false;passing0 = [passing0, 1];}else {if(_valid0){valid1 = true;passing0 = 1;}}if(!valid1){const err10 = {instancePath:instancePath+"/active",schemaPath:"#/properties/active/oneOf",keyword:"oneOf",params:{passingSchemas: passing0},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err10];}else {vErrors.push(err10);}errors++;validate119.errors = vErrors;return false;}else {errors = _errs10;if(vErrors !== null){if(_errs10){vErrors.length = _errs10;}else {vErrors = null;}}}var valid0 = _errs9 === errors;}else {var valid0 = true;}if(valid0){if(data.hot !== undefined){let data6 = data.hot;const _errs22 = errors;const _errs23 = errors;let valid5 = false;let passing2 = null;const _errs24 = errors;if(typeof data6 !== "boolean"){const err11 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/0/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err11];}else {vErrors.push(err11);}errors++;}var _valid2 = _errs24 === errors;if(_valid2){valid5 = true;passing2 = 0;}const _errs26 = errors;if(errors === _errs26){if(Array.isArray(data6)){if(data6.length > 20){const err12 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"};if(vErrors === null){vErrors = [err12];}else {vErrors.push(err12);}errors++;}else {var valid6 = true;const len1 = data6.length;for(let i1=0; i1 15 || isNaN(data7)){const err14 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err14];}else {vErrors.push(err14);}errors++;}else {if(data7 < 0 || isNaN(data7)){const err15 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}}}}var _valid3 = _errs30 === errors;if(_valid3){valid7 = true;passing3 = 0;}const _errs32 = errors;const _errs33 = errors;if(errors === _errs33){if(typeof data7 === "string"){if(func2(data7) > 64){const err16 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}else {if(!pattern18.test(data7)){const err17 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}}else {const err18 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;}}var _valid3 = _errs32 === errors;if(_valid3 && valid7){valid7 = false;passing3 = [passing3, 1];}else {if(_valid3){valid7 = true;passing3 = 1;}}if(!valid7){const err19 = {instancePath:instancePath+"/hot/" + i1,schemaPath:"#/properties/hot/oneOf/1/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing3},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err19];}else {vErrors.push(err19);}errors++;}else {errors = _errs29;if(vErrors !== null){if(_errs29){vErrors.length = _errs29;}else {vErrors = null;}}}var valid6 = _errs28 === errors;if(!valid6){break;}}}}else {const err20 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf/1/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err20];}else {vErrors.push(err20);}errors++;}}var _valid2 = _errs26 === errors;if(_valid2 && valid5){valid5 = false;passing2 = [passing2, 1];}else {if(_valid2){valid5 = true;passing2 = 1;}}if(!valid5){const err21 = {instancePath:instancePath+"/hot",schemaPath:"#/properties/hot/oneOf",keyword:"oneOf",params:{passingSchemas: passing2},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err21];}else {vErrors.push(err21);}errors++;validate119.errors = vErrors;return false;}else {errors = _errs23;if(vErrors !== null){if(_errs23){vErrors.length = _errs23;}else {vErrors = null;}}}var valid0 = _errs22 === errors;}else {var valid0 = true;}if(valid0){if(data.dim !== undefined){const _errs35 = errors;if(typeof data.dim !== "boolean"){validate119.errors = [{instancePath:instancePath+"/dim",schemaPath:"#/properties/dim/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs35 === errors;}else {var valid0 = true;}if(valid0){if(data.visible !== undefined){let data9 = data.visible;const _errs37 = errors;if(errors === _errs37){if(Array.isArray(data9)){if(data9.length > 20){validate119.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/maxItems",keyword:"maxItems",params:{limit: 20},message:"must NOT have more than 20 items"}];return false;}else {var valid9 = true;const len2 = data9.length;for(let i2=0; i2 15 || isNaN(data10)){const err23 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf/0/maximum",keyword:"maximum",params:{comparison: "<=", limit: 15},message:"must be <= 15"};if(vErrors === null){vErrors = [err23];}else {vErrors.push(err23);}errors++;}else {if(data10 < 0 || isNaN(data10)){const err24 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf/0/minimum",keyword:"minimum",params:{comparison: ">=", limit: 0},message:"must be >= 0"};if(vErrors === null){vErrors = [err24];}else {vErrors.push(err24);}errors++;}}}}var _valid4 = _errs41 === errors;if(_valid4){valid10 = true;passing4 = 0;}const _errs43 = errors;const _errs44 = errors;if(errors === _errs44){if(typeof data10 === "string"){if(func2(data10) > 64){const err25 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"};if(vErrors === null){vErrors = [err25];}else {vErrors.push(err25);}errors++;}else {if(!pattern18.test(data10)){const err26 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""};if(vErrors === null){vErrors = [err26];}else {vErrors.push(err26);}errors++;}}}else {const err27 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err27];}else {vErrors.push(err27);}errors++;}}var _valid4 = _errs43 === errors;if(_valid4 && valid10){valid10 = false;passing4 = [passing4, 1];}else {if(_valid4){valid10 = true;passing4 = 1;}}if(!valid10){const err28 = {instancePath:instancePath+"/visible/" + i2,schemaPath:"#/properties/visible/items/oneOf",keyword:"oneOf",params:{passingSchemas: passing4},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err28];}else {vErrors.push(err28);}errors++;validate119.errors = vErrors;return false;}else {errors = _errs40;if(vErrors !== null){if(_errs40){vErrors.length = _errs40;}else {vErrors = null;}}}var valid9 = _errs39 === errors;if(!valid9){break;}}}}else {validate119.errors = [{instancePath:instancePath+"/visible",schemaPath:"#/properties/visible/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs37 === errors;}else {var valid0 = true;}if(valid0){if(data.overrides !== undefined){let data11 = data.overrides;const _errs46 = errors;if(errors === _errs46){if(data11 && typeof data11 == "object" && !Array.isArray(data11)){if(Object.keys(data11).length > 6){validate119.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/maxProperties",keyword:"maxProperties",params:{limit: 6},message:"must NOT have more than 6 properties"}];return false;}else {for(const key1 in data11){const _errs48 = errors;if(!(((((((key1 === "title") || (key1 === "sub")) || (key1 === "label")) || (key1 === "text")) || (key1 === "n")) || (key1 === "dashed")) || (key1 === "muted"))){const err29 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames/enum",keyword:"enum",params:{allowedValues: schema182.properties.overrides.propertyNames.enum},message:"must be equal to one of the allowed values",propertyName:key1};if(vErrors === null){vErrors = [err29];}else {vErrors.push(err29);}errors++;}var valid12 = _errs48 === errors;if(!valid12){const err30 = {instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/propertyNames",keyword:"propertyNames",params:{propertyName: key1},message:"property name must be valid"};if(vErrors === null){vErrors = [err30];}else {vErrors.push(err30);}errors++;validate119.errors = vErrors;return false;break;}}if(valid12){for(const key2 in data11){let data12 = data11[key2];const _errs50 = errors;if(errors === _errs50){if(data12 && typeof data12 == "object" && !Array.isArray(data12)){if(Object.keys(data12).length > 20){validate119.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/maxProperties",keyword:"maxProperties",params:{limit: 20},message:"must NOT have more than 20 properties"}];return false;}else {for(const key3 in data12){let data13 = data12[key3];const _errs53 = errors;const _errs54 = errors;let valid15 = false;let passing5 = null;const _errs55 = errors;if(errors === _errs55){if(typeof data13 === "string"){if(func2(data13) > 300){const err31 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err31];}else {vErrors.push(err31);}errors++;}else {if(func2(data13) < 0){const err32 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err32];}else {vErrors.push(err32);}errors++;}}}else {const err33 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/0/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err33];}else {vErrors.push(err33);}errors++;}}var _valid5 = _errs55 === errors;if(_valid5){valid15 = true;passing5 = 0;}const _errs57 = errors;if(!((typeof data13 == "number") && (isFinite(data13)))){const err34 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/1/type",keyword:"type",params:{type: "number"},message:"must be number"};if(vErrors === null){vErrors = [err34];}else {vErrors.push(err34);}errors++;}var _valid5 = _errs57 === errors;if(_valid5 && valid15){valid15 = false;passing5 = [passing5, 1];}else {if(_valid5){valid15 = true;passing5 = 1;}const _errs59 = errors;if(typeof data13 !== "boolean"){const err35 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/2/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"};if(vErrors === null){vErrors = [err35];}else {vErrors.push(err35);}errors++;}var _valid5 = _errs59 === errors;if(_valid5 && valid15){valid15 = false;passing5 = [passing5, 2];}else {if(_valid5){valid15 = true;passing5 = 2;}const _errs61 = errors;if(errors === _errs61){if(Array.isArray(data13)){if(data13.length > 3){const err36 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/maxItems",keyword:"maxItems",params:{limit: 3},message:"must NOT have more than 3 items"};if(vErrors === null){vErrors = [err36];}else {vErrors.push(err36);}errors++;}else {var valid16 = true;const len3 = data13.length;for(let i3=0; i3 300){const err37 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"};if(vErrors === null){vErrors = [err37];}else {vErrors.push(err37);}errors++;}else {if(func2(data14) < 0){const err38 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"};if(vErrors === null){vErrors = [err38];}else {vErrors.push(err38);}errors++;}}}else {const err39 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + i3,schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/items/type",keyword:"type",params:{type: "string"},message:"must be string"};if(vErrors === null){vErrors = [err39];}else {vErrors.push(err39);}errors++;}}var valid16 = _errs63 === errors;if(!valid16){break;}}}}else {const err40 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf/3/type",keyword:"type",params:{type: "array"},message:"must be array"};if(vErrors === null){vErrors = [err40];}else {vErrors.push(err40);}errors++;}}var _valid5 = _errs61 === errors;if(_valid5 && valid15){valid15 = false;passing5 = [passing5, 3];}else {if(_valid5){valid15 = true;passing5 = 3;}}}}if(!valid15){const err41 = {instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/" + key3.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/additionalProperties/oneOf",keyword:"oneOf",params:{passingSchemas: passing5},message:"must match exactly one schema in oneOf"};if(vErrors === null){vErrors = [err41];}else {vErrors.push(err41);}errors++;validate119.errors = vErrors;return false;}else {errors = _errs54;if(vErrors !== null){if(_errs54){vErrors.length = _errs54;}else {vErrors = null;}}}var valid14 = _errs53 === errors;if(!valid14){break;}}}}else {validate119.errors = [{instancePath:instancePath+"/overrides/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/overrides/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid13 = _errs50 === errors;if(!valid13){break;}}}}}else {validate119.errors = [{instancePath:instancePath+"/overrides",schemaPath:"#/properties/overrides/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs46 === errors;}else {var valid0 = true;}}}}}}}}}}}}else {validate119.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate119.errors = vErrors;return errors === 0;}validate119.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate110(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/diagram.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate110.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((data.title === undefined) && (missing0 = "title")) || ((data.height === undefined) && (missing0 = "height"))) || ((data.elements === undefined) && (missing0 = "elements"))){validate110.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func1.call(schema160.properties, key0))){validate110.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.title !== undefined){let data0 = data.title;const _errs2 = errors;if(errors === _errs2){if(typeof data0 === "string"){if(func2(data0) > 200){validate110.errors = [{instancePath:instancePath+"/title",schemaPath:"#/properties/title/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}else {if(func2(data0) < 1){validate110.errors = [{instancePath:instancePath+"/title",schemaPath:"#/properties/title/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate110.errors = [{instancePath:instancePath+"/title",schemaPath:"#/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.caption !== undefined){let data1 = data.caption;const _errs4 = errors;if(errors === _errs4){if(typeof data1 === "string"){if(func2(data1) > 600){validate110.errors = [{instancePath:instancePath+"/caption",schemaPath:"#/properties/caption/maxLength",keyword:"maxLength",params:{limit: 600},message:"must NOT have more than 600 characters"}];return false;}else {if(func2(data1) < 0){validate110.errors = [{instancePath:instancePath+"/caption",schemaPath:"#/properties/caption/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate110.errors = [{instancePath:instancePath+"/caption",schemaPath:"#/properties/caption/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.height !== undefined){let data2 = data.height;const _errs6 = errors;if(!(((typeof data2 == "number") && (!(data2 % 1) && !isNaN(data2))) && (isFinite(data2)))){validate110.errors = [{instancePath:instancePath+"/height",schemaPath:"#/properties/height/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs6){if((typeof data2 == "number") && (isFinite(data2))){if(data2 > 1200 || isNaN(data2)){validate110.errors = [{instancePath:instancePath+"/height",schemaPath:"#/properties/height/maximum",keyword:"maximum",params:{comparison: "<=", limit: 1200},message:"must be <= 1200"}];return false;}else {if(data2 < 40 || isNaN(data2)){validate110.errors = [{instancePath:instancePath+"/height",schemaPath:"#/properties/height/minimum",keyword:"minimum",params:{comparison: ">=", limit: 40},message:"must be >= 40"}];return false;}}}}var valid0 = _errs6 === errors;}else {var valid0 = true;}if(valid0){if(data.width !== undefined){let data3 = data.width;const _errs8 = errors;if(!(((typeof data3 == "number") && (!(data3 % 1) && !isNaN(data3))) && (isFinite(data3)))){validate110.errors = [{instancePath:instancePath+"/width",schemaPath:"#/properties/width/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs8){if((typeof data3 == "number") && (isFinite(data3))){if(data3 > 1600 || isNaN(data3)){validate110.errors = [{instancePath:instancePath+"/width",schemaPath:"#/properties/width/maximum",keyword:"maximum",params:{comparison: "<=", limit: 1600},message:"must be <= 1600"}];return false;}else {if(data3 < 200 || isNaN(data3)){validate110.errors = [{instancePath:instancePath+"/width",schemaPath:"#/properties/width/minimum",keyword:"minimum",params:{comparison: ">=", limit: 200},message:"must be >= 200"}];return false;}}}}var valid0 = _errs8 === errors;}else {var valid0 = true;}if(valid0){if(data.expandable !== undefined){const _errs10 = errors;if(typeof data.expandable !== "boolean"){validate110.errors = [{instancePath:instancePath+"/expandable",schemaPath:"#/properties/expandable/type",keyword:"type",params:{type: "boolean"},message:"must be boolean"}];return false;}var valid0 = _errs10 === errors;}else {var valid0 = true;}if(valid0){if(data.mode !== undefined){let data5 = data.mode;const _errs12 = errors;if(!(((data5 === "static") || (data5 === "select")) || (data5 === "steps"))){validate110.errors = [{instancePath:instancePath+"/mode",schemaPath:"#/properties/mode/enum",keyword:"enum",params:{allowedValues: schema160.properties.mode.enum},message:"must be equal to one of the allowed values"}];return false;}var valid0 = _errs12 === errors;}else {var valid0 = true;}if(valid0){if(data.initial !== undefined){let data6 = data.initial;const _errs13 = errors;const _errs14 = errors;if(errors === _errs14){if(typeof data6 === "string"){if(func2(data6) > 64){validate110.errors = [{instancePath:instancePath+"/initial",schemaPath:"#/$defs/viewKey/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters"}];return false;}else {if(!pattern18.test(data6)){validate110.errors = [{instancePath:instancePath+"/initial",schemaPath:"#/$defs/viewKey/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\""}];return false;}}}else {validate110.errors = [{instancePath:instancePath+"/initial",schemaPath:"#/$defs/viewKey/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs13 === errors;}else {var valid0 = true;}if(valid0){if(data.hint !== undefined){let data7 = data.hint;const _errs16 = errors;if(errors === _errs16){if(typeof data7 === "string"){if(func2(data7) > 300){validate110.errors = [{instancePath:instancePath+"/hint",schemaPath:"#/properties/hint/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}else {if(func2(data7) < 0){validate110.errors = [{instancePath:instancePath+"/hint",schemaPath:"#/properties/hint/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate110.errors = [{instancePath:instancePath+"/hint",schemaPath:"#/properties/hint/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid0 = _errs16 === errors;}else {var valid0 = true;}if(valid0){if(data.elements !== undefined){let data8 = data.elements;const _errs18 = errors;if(errors === _errs18){if(Array.isArray(data8)){if(data8.length > 120){validate110.errors = [{instancePath:instancePath+"/elements",schemaPath:"#/properties/elements/maxItems",keyword:"maxItems",params:{limit: 120},message:"must NOT have more than 120 items"}];return false;}else {if(data8.length < 1){validate110.errors = [{instancePath:instancePath+"/elements",schemaPath:"#/properties/elements/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid2 = true;const len0 = data8.length;for(let i0=0; i0 30){validate110.errors = [{instancePath:instancePath+"/info",schemaPath:"#/properties/info/maxProperties",keyword:"maxProperties",params:{limit: 30},message:"must NOT have more than 30 properties"}];return false;}else {for(const key1 in data16){const _errs50 = errors;const _errs51 = errors;if(errors === _errs51){if(typeof key1 === "string"){if(func2(key1) > 64){const err15 = {instancePath:instancePath+"/info",schemaPath:"../common.schema.json#/$defs/id/maxLength",keyword:"maxLength",params:{limit: 64},message:"must NOT have more than 64 characters",propertyName:key1};if(vErrors === null){vErrors = [err15];}else {vErrors.push(err15);}errors++;}else {if(!pattern18.test(key1)){const err16 = {instancePath:instancePath+"/info",schemaPath:"../common.schema.json#/$defs/id/pattern",keyword:"pattern",params:{pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"},message:"must match pattern \""+"^[a-z0-9]+(?:-[a-z0-9]+)*$"+"\"",propertyName:key1};if(vErrors === null){vErrors = [err16];}else {vErrors.push(err16);}errors++;}}}else {const err17 = {instancePath:instancePath+"/info",schemaPath:"../common.schema.json#/$defs/id/type",keyword:"type",params:{type: "string"},message:"must be string",propertyName:key1};if(vErrors === null){vErrors = [err17];}else {vErrors.push(err17);}errors++;}}var valid15 = _errs50 === errors;if(!valid15){const err18 = {instancePath:instancePath+"/info",schemaPath:"#/properties/info/propertyNames",keyword:"propertyNames",params:{propertyName: key1},message:"property name must be valid"};if(vErrors === null){vErrors = [err18];}else {vErrors.push(err18);}errors++;validate110.errors = vErrors;return false;break;}}if(valid15){for(const key2 in data16){let data17 = data16[key2];const _errs54 = errors;if(errors === _errs54){if(data17 && typeof data17 == "object" && !Array.isArray(data17)){let missing7;if(((data17.title === undefined) && (missing7 = "title")) || ((data17.text === undefined) && (missing7 = "text"))){validate110.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/info/additionalProperties/required",keyword:"required",params:{missingProperty: missing7},message:"must have required property '"+missing7+"'"}];return false;}else {const _errs56 = errors;for(const key3 in data17){if(!((((key3 === "title") || (key3 === "text")) || (key3 === "tone")) || (key3 === "code"))){validate110.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/info/additionalProperties/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs56 === errors){if(data17.title !== undefined){let data18 = data17.title;const _errs57 = errors;if(errors === _errs57){if(typeof data18 === "string"){if(func2(data18) > 200){validate110.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/title",schemaPath:"#/properties/info/additionalProperties/properties/title/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}else {if(func2(data18) < 1){validate110.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/title",schemaPath:"#/properties/info/additionalProperties/properties/title/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate110.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/title",schemaPath:"#/properties/info/additionalProperties/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid18 = _errs57 === errors;}else {var valid18 = true;}if(valid18){if(data17.text !== undefined){let data19 = data17.text;const _errs59 = errors;if(errors === _errs59){if(typeof data19 === "string"){if(func2(data19) > 1500){validate110.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/info/additionalProperties/properties/text/maxLength",keyword:"maxLength",params:{limit: 1500},message:"must NOT have more than 1500 characters"}];return false;}else {if(func2(data19) < 1){validate110.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/info/additionalProperties/properties/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate110.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/text",schemaPath:"#/properties/info/additionalProperties/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid18 = _errs59 === errors;}else {var valid18 = true;}if(valid18){if(data17.tone !== undefined){let data20 = data17.tone;const _errs61 = errors;if(!(((((((((data20 === "gray") || (data20 === "purple")) || (data20 === "teal")) || (data20 === "coral")) || (data20 === "pink")) || (data20 === "blue")) || (data20 === "green")) || (data20 === "amber")) || (data20 === "red"))){validate110.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/tone",schemaPath:"../common.schema.json#/$defs/tone/enum",keyword:"enum",params:{allowedValues: schema159.enum},message:"must be equal to one of the allowed values"}];return false;}var valid18 = _errs61 === errors;}else {var valid18 = true;}if(valid18){if(data17.code !== undefined){let data21 = data17.code;const _errs63 = errors;if(errors === _errs63){if(typeof data21 === "string"){if(func2(data21) > 2000){validate110.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/code",schemaPath:"#/properties/info/additionalProperties/properties/code/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data21) < 0){validate110.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/code",schemaPath:"#/properties/info/additionalProperties/properties/code/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate110.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/code",schemaPath:"#/properties/info/additionalProperties/properties/code/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid18 = _errs63 === errors;}else {var valid18 = true;}}}}}}}else {validate110.errors = [{instancePath:instancePath+"/info/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/info/additionalProperties/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid17 = _errs54 === errors;if(!valid17){break;}}}}}else {validate110.errors = [{instancePath:instancePath+"/info",schemaPath:"#/properties/info/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs48 === errors;}else {var valid0 = true;}if(valid0){if(data.steps !== undefined){let data22 = data.steps;const _errs65 = errors;if(errors === _errs65){if(Array.isArray(data22)){if(data22.length > 12){validate110.errors = [{instancePath:instancePath+"/steps",schemaPath:"#/properties/steps/maxItems",keyword:"maxItems",params:{limit: 12},message:"must NOT have more than 12 items"}];return false;}else {if(data22.length < 2){validate110.errors = [{instancePath:instancePath+"/steps",schemaPath:"#/properties/steps/minItems",keyword:"minItems",params:{limit: 2},message:"must NOT have fewer than 2 items"}];return false;}else {var valid20 = true;const len1 = data22.length;for(let i1=0; i1 200){validate110.errors = [{instancePath:instancePath+"/steps/" + i1+"/title",schemaPath:"#/properties/steps/items/properties/title/maxLength",keyword:"maxLength",params:{limit: 200},message:"must NOT have more than 200 characters"}];return false;}else {if(func2(data24) < 1){validate110.errors = [{instancePath:instancePath+"/steps/" + i1+"/title",schemaPath:"#/properties/steps/items/properties/title/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate110.errors = [{instancePath:instancePath+"/steps/" + i1+"/title",schemaPath:"#/properties/steps/items/properties/title/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid21 = _errs70 === errors;}else {var valid21 = true;}if(valid21){if(data23.text !== undefined){let data25 = data23.text;const _errs72 = errors;if(errors === _errs72){if(typeof data25 === "string"){if(func2(data25) > 600){validate110.errors = [{instancePath:instancePath+"/steps/" + i1+"/text",schemaPath:"#/properties/steps/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 600},message:"must NOT have more than 600 characters"}];return false;}else {if(func2(data25) < 0){validate110.errors = [{instancePath:instancePath+"/steps/" + i1+"/text",schemaPath:"#/properties/steps/items/properties/text/minLength",keyword:"minLength",params:{limit: 0},message:"must NOT have fewer than 0 characters"}];return false;}}}else {validate110.errors = [{instancePath:instancePath+"/steps/" + i1+"/text",schemaPath:"#/properties/steps/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid21 = _errs72 === errors;}else {var valid21 = true;}}}}}else {validate110.errors = [{instancePath:instancePath+"/steps/" + i1,schemaPath:"#/properties/steps/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid20 = _errs67 === errors;if(!valid20){break;}}}}}else {validate110.errors = [{instancePath:instancePath+"/steps",schemaPath:"#/properties/steps/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs65 === errors;}else {var valid0 = true;}}}}}}}}}}}}}}else {validate110.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate110.errors = vErrors;return errors === 0;}validate110.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateFeatureGridData = validate121;const schema188 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/feature-grid.schema.json","type":"object","additionalProperties":false,"required":["items"],"properties":{"items":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"object","additionalProperties":false,"required":["icon","title","text"],"properties":{"icon":{"enum":["book","flask","chart","shield","layers","terminal","rotate","save","laptop","eye","check","git"]},"title":{"$ref":"../common.schema.json#/$defs/shortText"},"text":{"$ref":"../common.schema.json#/$defs/text","maxLength":300,"type":"string"},"tone":{"enum":["purple","teal","coral","pink","blue","green","amber","gray"]}}}}}};function validate122(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate122.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate122.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate122.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate122.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate122.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate122.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate122.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate122.errors = vErrors;return errors === 0;}validate122.evaluated = {"dynamicProps":false,"dynamicItems":false};function validate121(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/feature-grid.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate121.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((data.items === undefined) && (missing0 = "items")){validate121.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(key0 === "items")){validate121.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.items !== undefined){let data0 = data.items;const _errs2 = errors;if(errors === _errs2){if(Array.isArray(data0)){if(data0.length > 8){validate121.errors = [{instancePath:instancePath+"/items",schemaPath:"#/properties/items/maxItems",keyword:"maxItems",params:{limit: 8},message:"must NOT have more than 8 items"}];return false;}else {if(data0.length < 1){validate121.errors = [{instancePath:instancePath+"/items",schemaPath:"#/properties/items/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid1 = true;const len0 = data0.length;for(let i0=0; i0 2000){validate121.errors = [{instancePath:instancePath+"/items/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data4) < 1){validate121.errors = [{instancePath:instancePath+"/items/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate121.errors = [{instancePath:instancePath+"/items/" + i0+"/text",schemaPath:"../common.schema.json#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === _errs9){if(typeof data4 === "string"){if(func2(data4) > 300){validate121.errors = [{instancePath:instancePath+"/items/" + i0+"/text",schemaPath:"#/properties/items/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 300},message:"must NOT have more than 300 characters"}];return false;}}else {validate121.errors = [{instancePath:instancePath+"/items/" + i0+"/text",schemaPath:"#/properties/items/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs9 === errors;}else {var valid2 = true;}if(valid2){if(data1.tone !== undefined){let data5 = data1.tone;const _errs15 = errors;if(!((((((((data5 === "purple") || (data5 === "teal")) || (data5 === "coral")) || (data5 === "pink")) || (data5 === "blue")) || (data5 === "green")) || (data5 === "amber")) || (data5 === "gray"))){validate121.errors = [{instancePath:instancePath+"/items/" + i0+"/tone",schemaPath:"#/properties/items/items/properties/tone/enum",keyword:"enum",params:{allowedValues: schema188.properties.items.items.properties.tone.enum},message:"must be equal to one of the allowed values"}];return false;}var valid2 = _errs15 === errors;}else {var valid2 = true;}}}}}}}else {validate121.errors = [{instancePath:instancePath+"/items/" + i0,schemaPath:"#/properties/items/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid1 = _errs4 === errors;if(!valid1){break;}}}}}else {validate121.errors = [{instancePath:instancePath+"/items",schemaPath:"#/properties/items/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}}}}}else {validate121.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate121.errors = vErrors;return errors === 0;}validate121.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};export const validateTerminalDemoData = validate124;const schema192 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://kernelpath.dev/schema/v1/data/terminal-demo.schema.json","type":"object","additionalProperties":false,"required":["title","lines"],"properties":{"title":{"$ref":"../common.schema.json#/$defs/shortText"},"lines":{"type":"array","minItems":1,"maxItems":14,"items":{"type":"object","additionalProperties":false,"required":["kind","text"],"properties":{"kind":{"enum":["command","output","ok","changed","comment"]},"text":{"type":"string","maxLength":120}}}}}};function validate125(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate125.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs0 = errors;const _errs2 = errors;const _errs3 = errors;if(typeof data === "string"){if(!pattern5.test(data)){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}var valid1 = _errs3 === errors;if(valid1){validate125.errors = [{instancePath,schemaPath:"#/$defs/text/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs2;if(vErrors !== null){if(_errs2){vErrors.length = _errs2;}else {vErrors = null;}}}if(errors === _errs0){if(typeof data === "string"){if(func2(data) > 2000){validate125.errors = [{instancePath,schemaPath:"#/$defs/text/maxLength",keyword:"maxLength",params:{limit: 2000},message:"must NOT have more than 2000 characters"}];return false;}else {if(func2(data) < 1){validate125.errors = [{instancePath,schemaPath:"#/$defs/text/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate125.errors = [{instancePath,schemaPath:"#/$defs/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}if(errors === 0){if(typeof data === "string"){if(func2(data) > 160){validate125.errors = [{instancePath,schemaPath:"#/maxLength",keyword:"maxLength",params:{limit: 160},message:"must NOT have more than 160 characters"}];return false;}}else {validate125.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}validate125.errors = vErrors;return errors === 0;}validate125.evaluated = {"dynamicProps":false,"dynamicItems":false};function validate124(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="https://kernelpath.dev/schema/v1/data/terminal-demo.schema.json" */;let vErrors = null;let errors = 0;const evaluated0 = validate124.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((data.title === undefined) && (missing0 = "title")) || ((data.lines === undefined) && (missing0 = "lines"))){validate124.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!((key0 === "title") || (key0 === "lines"))){validate124.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.title !== undefined){const _errs2 = errors;if(!(validate125(data.title, {instancePath:instancePath+"/title",parentData:data,parentDataProperty:"title",rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate125.errors : vErrors.concat(validate125.errors);errors = vErrors.length;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.lines !== undefined){let data1 = data.lines;const _errs3 = errors;if(errors === _errs3){if(Array.isArray(data1)){if(data1.length > 14){validate124.errors = [{instancePath:instancePath+"/lines",schemaPath:"#/properties/lines/maxItems",keyword:"maxItems",params:{limit: 14},message:"must NOT have more than 14 items"}];return false;}else {if(data1.length < 1){validate124.errors = [{instancePath:instancePath+"/lines",schemaPath:"#/properties/lines/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid1 = true;const len0 = data1.length;for(let i0=0; i0 120){validate124.errors = [{instancePath:instancePath+"/lines/" + i0+"/text",schemaPath:"#/properties/lines/items/properties/text/maxLength",keyword:"maxLength",params:{limit: 120},message:"must NOT have more than 120 characters"}];return false;}}else {validate124.errors = [{instancePath:instancePath+"/lines/" + i0+"/text",schemaPath:"#/properties/lines/items/properties/text/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid2 = _errs9 === errors;}else {var valid2 = true;}}}}}else {validate124.errors = [{instancePath:instancePath+"/lines/" + i0,schemaPath:"#/properties/lines/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid1 = _errs5 === errors;if(!valid1){break;}}}}}else {validate124.errors = [{instancePath:instancePath+"/lines",schemaPath:"#/properties/lines/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs3 === errors;}else {var valid0 = true;}}}}}else {validate124.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate124.errors = vErrors;return errors === 0;}validate124.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false}; // What each tag may carry, from the component catalog: checked in the browser before a tag is rendered. export const TAGS = {"admin-module-finder":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"annotated-yaml":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"assessment-timer":{"required":["id"],"attributes":{"id":{"type":"string"},"minutes":{"type":"integer","minimum":5,"maximum":480}}},"block-flow":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"build-roadmap":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"callout":{"required":[],"attributes":{"type":{"type":"string","enum":["note","tip","important","warning","exam"]},"title":{"type":"string"}}},"card":{"required":["title"],"attributes":{"title":{"type":"string"},"kicker":{"type":"string"},"tone":{"type":"string","enum":["gray","purple","teal","coral","pink","blue","green","amber","red"]}}},"cards":{"required":[],"attributes":{"cols":{"type":"integer","enum":[2,3]}}},"check-mode-sim":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"column":{"required":[],"attributes":{"title":{"type":"string"},"tone":{"type":"string","enum":["gray","purple","teal","coral","pink","blue","green","amber","red"]}}},"columns":{"required":[],"attributes":{}},"command-vs-module":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"condition-playground":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"cron-builder":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"custom-fact-builder":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"data-explorer":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"diagram":{"required":["ref"],"attributes":{"ref":{"type":"string"}}},"error-decoder":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"fact-gathering":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"facts-explorer":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"feature-grid":{"required":["ref"],"attributes":{"ref":{"type":"string"}}},"fetch-layout":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"file-edit-simulator":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"file-module-chooser":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"flashcards":{"required":["ref"],"attributes":{"ref":{"type":"string"},"title":{"type":"string"}}},"flow-map":{"required":["ref"],"attributes":{"ref":{"type":"string"},"title":{"type":"string"},"caption":{"type":"string"}}},"fqcn-explorer":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"glob-tester":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"glossary":{"required":[],"attributes":{}},"grep-tester":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"group-vars-resolver":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"handler-timeline":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"hero":{"required":["title"],"attributes":{"eyebrow":{"type":"string"},"title":{"type":"string"},"art":{"type":"string","enum":["lab"]},"primary":{"type":"string"},"primaryLabel":{"type":"string"},"secondaryLabel":{"type":"string"}}},"host-pattern-tester":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"idempotency-demo":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"inventory-explorer":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"kbd":{"required":[],"attributes":{}},"lab":{"required":["id","title"],"attributes":{"id":{"type":"string"},"title":{"type":"string"},"exercise":{"type":"string"},"ownExercise":{"type":"boolean"},"starter":{"type":"boolean"},"hosts":{"type":"string[]","maxItems":12},"outcomes":{"type":"string[]","maxItems":12},"objectives":{"type":"string[]","maxItems":12},"guided":{"type":"boolean"}}},"lab-challenge":{"required":[],"attributes":{}},"lab-finish":{"required":["exercise"],"attributes":{"exercise":{"type":"string"},"grade":{"type":"boolean"},"servers":{"type":"boolean"}}},"lab-network-map":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"lab-notes":{"required":[],"attributes":{}},"lab-setup":{"required":["variant"],"attributes":{"variant":{"type":"string"}}},"lead":{"required":[],"attributes":{}},"loop-unroller":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"magic-variables":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"mode-calculator":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"module-explorer":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"objectives":{"required":[],"attributes":{}},"play-order":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"play-recap":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"practice":{"required":["ref"],"attributes":{"ref":{"type":"string"}}},"precedence-resolver":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"program-cards":{"required":[],"attributes":{}},"project-tree":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"quiz":{"required":["ref"],"attributes":{"id":{"type":"string"},"ref":{"type":"string"},"title":{"type":"string"},"objectives":{"type":"string[]","maxItems":12}}},"range-expander":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"reader-variables":{"required":[],"attributes":{}},"readiness-checklist":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"reuse-simulator":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"reveal":{"required":[],"attributes":{"title":{"type":"string"}}},"role-anatomy":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"role-var-resolver":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"run-stages":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"shell-practice":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"snapshot-chain":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"starter-files":{"required":["exercise"],"attributes":{"exercise":{"type":"string"}}},"stat-explorer":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"step":{"required":[],"attributes":{"title":{"type":"string"}}},"steps":{"required":[],"attributes":{}},"tab":{"required":["label"],"attributes":{"label":{"type":"string"}}},"tabs":{"required":[],"attributes":{}},"task":{"required":["id","title"],"attributes":{"id":{"type":"string"},"title":{"type":"string"},"legacyIndex":{"type":"integer","minimum":1}}},"task-outcome":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"template-playground":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"term":{"required":["name"],"attributes":{"name":{"type":"string"}}},"terminal-demo":{"required":["ref"],"attributes":{"ref":{"type":"string"}}},"variable-name-checker":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"variable-precedence":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"variable-substitution":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"variant":{"required":["name"],"attributes":{"name":{"type":"string"},"title":{"type":"string"}}},"variant-group":{"required":[],"attributes":{}},"variant-switch":{"required":[],"attributes":{"label":{"type":"string"}}},"vault-commands":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"verbosity":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}},"yaml-multiline":{"required":["ref"],"kit":true,"attributes":{"ref":{"type":"string"}}}}; diff --git a/packages/schema/schemas/bundle/manifest.schema.json b/packages/schema/schemas/bundle/manifest.schema.json index 3f3311d..0cad397 100644 --- a/packages/schema/schemas/bundle/manifest.schema.json +++ b/packages/schema/schemas/bundle/manifest.schema.json @@ -186,9 +186,23 @@ } } } + }, + "seoTitle": { + "$ref": "../common.schema.json#/$defs/seoTitle" + }, + "description": { + "$ref": "../common.schema.json#/$defs/text", + "maxLength": 300, + "type": "string" } } } + }, + "seoTitle": { + "$ref": "../common.schema.json#/$defs/seoTitle" + }, + "seoDescription": { + "$ref": "../common.schema.json#/$defs/seoDescription" } } } diff --git a/packages/schema/schemas/bundle/page.schema.json b/packages/schema/schemas/bundle/page.schema.json index ed37532..b4016d8 100644 --- a/packages/schema/schemas/bundle/page.schema.json +++ b/packages/schema/schemas/bundle/page.schema.json @@ -80,6 +80,9 @@ }, "eyebrow": { "$ref": "../common.schema.json#/$defs/shortText" + }, + "seoTitle": { + "$ref": "../common.schema.json#/$defs/seoTitle" } }, "$defs": { diff --git a/packages/schema/schemas/common.schema.json b/packages/schema/schemas/common.schema.json index 85904a8..87a2fe5 100644 --- a/packages/schema/schemas/common.schema.json +++ b/packages/schema/schemas/common.schema.json @@ -106,6 +106,18 @@ "type": "string", "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "maxLength": 64 + }, + "seoTitle": { + "description": "The title search engines and browser tabs show, written for what people search (about 50-65 characters).", + "$ref": "#/$defs/text", + "maxLength": 75, + "type": "string" + }, + "seoDescription": { + "description": "The description search engines show under the title (about 120-160 characters).", + "$ref": "#/$defs/text", + "maxLength": 170, + "type": "string" } } } diff --git a/packages/schema/schemas/source/chapter.schema.json b/packages/schema/schemas/source/chapter.schema.json index efb067f..9581a5f 100644 --- a/packages/schema/schemas/source/chapter.schema.json +++ b/packages/schema/schemas/source/chapter.schema.json @@ -52,6 +52,12 @@ "items": { "$ref": "../common.schema.json#/$defs/shortText" } + }, + "seoTitle": { + "$ref": "../common.schema.json#/$defs/seoTitle" + }, + "seoDescription": { + "$ref": "../common.schema.json#/$defs/seoDescription" } } } diff --git a/packages/schema/schemas/source/program.schema.json b/packages/schema/schemas/source/program.schema.json index 1f78645..ff2be5f 100644 --- a/packages/schema/schemas/source/program.schema.json +++ b/packages/schema/schemas/source/program.schema.json @@ -237,6 +237,46 @@ "type": "string" } } + }, + "seoTitle": { + "$ref": "../common.schema.json#/$defs/seoTitle" + }, + "seoDescription": { + "$ref": "../common.schema.json#/$defs/seoDescription" + }, + "keywords": { + "description": "Search phrases the program targets; used in structured data.", + "type": "array", + "maxItems": 24, + "items": { + "$ref": "../common.schema.json#/$defs/shortText" + } + }, + "certifications": { + "description": "Certification exams the program prepares for (named in structured data and the exam objectives page).", + "type": "array", + "maxItems": 4, + "items": { + "type": "object", + "additionalProperties": false, + "required": [ + "name", + "code" + ], + "properties": { + "name": { + "$ref": "../common.schema.json#/$defs/shortText" + }, + "code": { + "type": "string", + "pattern": "^[A-Z]{2,4}[0-9]{2,4}$" + }, + "url": { + "type": "string", + "pattern": "^https://" + } + } + } } } } diff --git a/packages/schema/schemas/source/section.schema.json b/packages/schema/schemas/source/section.schema.json index 7bcf9b8..dc953f9 100644 --- a/packages/schema/schemas/source/section.schema.json +++ b/packages/schema/schemas/source/section.schema.json @@ -47,6 +47,9 @@ "eyebrow": { "description": "A short line above the title on reference pages.", "$ref": "../common.schema.json#/$defs/shortText" + }, + "seoTitle": { + "$ref": "../common.schema.json#/$defs/seoTitle" } } } diff --git a/scripts/indexnow.mjs b/scripts/indexnow.mjs new file mode 100644 index 0000000..0d63f38 --- /dev/null +++ b/scripts/indexnow.mjs @@ -0,0 +1,30 @@ +// Tells search engines that use IndexNow (Bing, Yandex, Seznam, Naver; Bing also feeds DuckDuckGo and +// others) which pages are new or changed, right after a deploy. Runs in GitHub Actions; the site itself +// does no work. The key is a public file at the site root, as the protocol requires. +// node scripts/indexnow.mjs +import fs from 'node:fs'; +import path from 'node:path'; + +const [previousFile, currentFile = 'dist/sitemap.xml'] = process.argv.slice(2); +const entries = (xml) => + new Map([...xml.matchAll(/([^<]+)<\/loc>([^<]+)<\/lastmod>/g)].map((m) => [m[1], m[2]])); +const current = entries(fs.readFileSync(currentFile, 'utf8')); +const previous = previousFile && fs.existsSync(previousFile) ? entries(fs.readFileSync(previousFile, 'utf8')) : new Map(); +const changed = [...current].filter(([url, lastmod]) => previous.get(url) !== lastmod).map(([url]) => url); +if (!changed.length) { + console.log('IndexNow: nothing new or changed'); + process.exit(0); +} +const dist = path.dirname(currentFile); +const keyFile = fs.readdirSync(dist).find((f) => /^[0-9a-f]{32}\.txt$/.test(f)); +if (!keyFile) throw new Error('No IndexNow key file at the site root'); +const key = keyFile.slice(0, -4); +const { origin, host } = new URL(changed[0]); +const body = { host, key, keyLocation: `${origin}/${keyFile}`, urlList: changed.slice(0, 10000) }; +const response = await fetch('https://api.indexnow.org/indexnow', { + method: 'POST', + headers: { 'Content-Type': 'application/json; charset=utf-8' }, + body: JSON.stringify(body), +}); +console.log(`IndexNow: submitted ${body.urlList.length} addresses, status ${response.status}`); +if (!response.ok && response.status !== 202) process.exitCode = 1; diff --git a/scripts/inject-meta.mjs b/scripts/inject-meta.mjs index 3fbd4dc..65feb6f 100644 --- a/scripts/inject-meta.mjs +++ b/scripts/inject-meta.mjs @@ -78,5 +78,13 @@ let html = fs if (/\bintegrity=/.test(tag)) return tag; return `<${name}${before}${attribute}="${href}" integrity="${integrity(local(href))}"${after}>`; }); +// Everything else the app may need later (widgets, chapter kits, the dashboard): fetched while the browser +// is idle after the first page has drawn, so later pages and activities open without waiting. +const referenced = new Set([...html.matchAll(/(?:src|href)="([^"]+)"/g)].map((m) => local(m[1]))); +const later = fs + .readdirSync(path.join(dist, 'assets')) + .filter((f) => /\.(?:js|css)$/.test(f) && !referenced.has(`assets/${f}`)) + .map((f) => `${base}assets/${f}`); +html = html.replace(/\s*]*>/, '').replace('', ` \n `); fs.writeFileSync(file, html); console.log(`index.html: ${title}`); diff --git a/scripts/prerender.mjs b/scripts/prerender.mjs index 0de7b86..d30f305 100644 --- a/scripts/prerender.mjs +++ b/scripts/prerender.mjs @@ -10,6 +10,7 @@ import { execFileSync } from 'node:child_process'; import fs from 'node:fs'; import path from 'node:path'; +import { canonicalUrl, chapterMeta, examLabel, homeMeta, programMeta, sectionMeta } from '../packages/engine/src/lib/seo.js'; const dist = path.resolve(process.argv[2] ?? 'dist'); const root = path.resolve(path.dirname(new URL(import.meta.url).pathname), '..'); @@ -30,7 +31,7 @@ const clip = (text, length = 158) => { return flat.length <= length ? flat : `${flat.slice(0, length - 1).replace(/\s+\S*$/, '')}…`; }; /** "/rhel9-sysadmin/ch02" → the public address, always with a trailing slash (the form the static host serves). */ -const address = (route) => `${origin}${base}${route.replace(/^\/|\/$/g, '')}${route === '/' ? '' : '/'}`.replace(/([^:])\/\/+/g, '$1/'); +const address = (route) => canonicalUrl(origin, base, route); // ---------- Page trees to HTML ---------- @@ -110,7 +111,7 @@ const breadcrumb = (items) => ({ '@type': 'BreadcrumbList', itemListElement: items.map((item, i) => ({ '@type': 'ListItem', position: i + 1, name: item.name, item: item.url })), }); -const organization = { '@type': 'Organization', name: siteName, url: address('/') }; +const organization = { '@type': 'Organization', name: siteName, url: address('/'), logo: `${origin}${base}icon-512.png` }; function page({ route, title, description, body, graph = [], index = true, type = 'website' }) { const url = address(route); @@ -173,7 +174,7 @@ let count = 0; // The site home const home = site.site.home ? read(site.site.home) : null; -const homeTitle = `${siteName} · ${site.site.tagline}`; +const homeHead = homeMeta(site, home); const programList = `

    Programs

    `; @@ -181,8 +182,8 @@ write( '/', page({ route: '/', - title: homeTitle, - description: clip(site.site.description), + title: homeHead.title, + description: homeHead.description, body: `${home ? render(home.tree, { data: home.data }) : `

    ${escape(site.site.tagline)}

    `}${programList}`, graph: [ { '@type': 'WebSite', name: siteName, url: address('/'), description: site.site.description, inLanguage: 'en' }, @@ -198,11 +199,17 @@ for (const entry of site.programs) { const manifest = read(entry.manifest); const program = manifest.program; const programRoute = `/${program.id}`; + const programHead = programMeta(program, siteName); + const exams = program.certifications ?? []; const course = { '@type': 'Course', '@id': `${address(programRoute)}#course`, - name: program.title, + name: program.seoTitle ?? program.title, description: program.summary, + ...(program.keywords?.length ? { keywords: program.keywords.join(', ') } : {}), + ...(exams.length ? { about: exams.map((e) => ({ '@type': 'Thing', name: `${e.name} (${e.code})` })) } : {}), + teaches: manifest.chapters.filter((c) => c.status !== 'planned' && !c.setup).map((c) => c.title), + coursePrerequisites: 'None: the path starts from the first login.', url: address(programRoute), provider: organization, isAccessibleForFree: true, @@ -222,9 +229,11 @@ for (const entry of site.programs) { programRoute, page({ route: programRoute, - title: `${program.title} · ${siteName}`, - description: clip(program.summary), - body: `

    ${escape(program.title)}

    ${escape(program.summary)}

    Chapters

      ${chapters + title: programHead.title, + description: programHead.description, + body: `

      ${escape(program.title)}

      ${escape(program.summary)}

      ${ + exams.length ? `

      Prepares you for ${exams.map((e) => `${escape(e.name)} (${escape(e.code)})`).join(' and ')}.

      ` : '' + }

      Chapters

        ${chapters .map((c) => `
      1. ${escape(c.title)}${c.goal ? `: ${escape(c.goal)}` : ''}
      2. `) .join('')}
      `, graph: [course, breadcrumb(programCrumb)], @@ -251,13 +260,14 @@ for (const entry of site.programs) { for (const chapter of chapters) { const chapterRoute = `${programRoute}/${chapter.id}`; const chapterTitle = `Chapter ${chapter.number}: ${chapter.title}`; + const chapterHead = chapterMeta(chapter, program); const chapterCrumb = [...programCrumb, { name: chapterTitle, url: address(chapterRoute) }]; write( chapterRoute, page({ route: chapterRoute, - title: `${chapterTitle} · ${program.title}`, - description: clip(chapter.goal ?? program.summary), + title: chapterHead.title, + description: chapterHead.description, body: `

      ${escape(chapterTitle)}

      ${chapter.goal ? `

      ${escape(chapter.goal)}

      ` : ''}${ chapter.objectives?.length ? `

      What you will learn

        ${chapter.objectives.map((o) => `
      • ${escape(o)}
      • `).join('')}
      ` : '' }

      Sections

        ${chapter.sections @@ -275,18 +285,26 @@ for (const entry of site.programs) { if (!file) continue; const content = read(file); const route = `${programRoute}/${key}`; - const lead = content.tree.find((n) => n.t === 'tag' && n.name === 'lead'); - const description = clip(lead ? text(lead.c) : (chapter.goal ?? program.summary)); - const title = `${content.title} · ${chapterTitle}`; + const head = sectionMeta(section, chapter, program, content); + const { description } = head; + const title = head.title; + const index = chapter.sections.indexOf(section); + const near = [chapter.sections[index - 1], chapter.sections[index + 1]].filter(Boolean); + const modified = lastChanged(sourceOf(program.id, key)); const kind = content.kind === 'lab' ? 'Exercise' : content.kind === 'quiz' ? 'Quiz' : content.kind === 'summary' ? 'Summary' : 'Lesson'; write( route, page({ route, - title: `${content.title} · ${program.title}`, + title, description, type: 'article', - body: `

        ${escape(chapterTitle)}

        ${escape(content.title)}

        ${render(content.tree, { data: content.data, programId: program.id })}`, + body: `

        ${escape(chapterTitle)}

        ${escape(content.title)}

        ${render(content.tree, { + data: content.data, + programId: program.id, + })}`, graph: [ { '@type': 'LearningResource', @@ -299,13 +317,15 @@ for (const entry of site.programs) { isAccessibleForFree: true, inLanguage: 'en', isPartOf: { '@id': `${address(programRoute)}#course` }, + dateModified: modified, + ...(program.keywords?.length ? { keywords: program.keywords.slice(0, 8).join(', ') } : {}), publisher: organization, }, breadcrumb([...chapterCrumb, { name: content.title, url: address(route) }]), ], }), ); - add(route, lastChanged(sourceOf(program.id, key)), content.kind === 'lesson' ? '0.8' : '0.6'); + add(route, modified, content.kind === 'lesson' ? '0.8' : '0.6'); count++; } } diff --git a/tests/browser_checks.py b/tests/browser_checks.py index a4d6be1..bdd9b88 100644 --- a/tests/browser_checks.py +++ b/tests/browser_checks.py @@ -183,17 +183,17 @@ def programs_stay_separate(browser): assert page.evaluate("JSON.parse(localStorage.getItem('rhce:second-program@completed'))") == ['ch01/hello'] assert page.evaluate("JSON.parse(localStorage.getItem('rhce:rhel9-ansible@completed'))") == ['ch02/why-automate'] page.get_by_role('link', name='Looking around').first.click() - page.wait_for_url('**/second-program/ch01/next') + page.wait_for_url('**/second-program/ch01/next/') assert not page.get_by_role('link', name='Building an Ansible inventory').count(), 'only this program is listed' # The program selector lists both programs and switches between them. page.get_by_role('button', name='Program: Linux basics (test fixture). Switch program').click() panel = page.get_by_role('dialog', name='Programs') assert panel.get_by_role('link', name='Ansible automation on RHEL 9').count() == 1 panel.get_by_role('link', name='Ansible automation on RHEL 9').click() - page.wait_for_url('**/rhel9-ansible') + page.wait_for_url('**/rhel9-ansible/') page.get_by_role('button', name='Program: Ansible automation on RHEL 9. Switch program').click() page.get_by_role('dialog', name='Programs').get_by_role('link', name='Linux basics (test fixture)').click() - page.wait_for_url('**/second-program') + page.wait_for_url('**/second-program/') page.get_by_role('heading', name='Linux basics (test fixture)', level=1).wait_for() page.goto(base + '#/second-program/ch01/next'); page.locator(APP_H1).first.wait_for() page.goto(base + '#/second-program/progress') @@ -217,7 +217,7 @@ def programs_stay_separate(browser): page.keyboard.press('Escape') # Addresses from before programs existed still work; unknown programs are a 404. page.goto(base + '#/ch03/inventory') - page.wait_for_url('**/rhel9-ansible/ch03/inventory') + page.wait_for_url('**/rhel9-ansible/ch03/inventory/') page.goto(base + '#/no-such-program/ch01/x') page.get_by_role('heading', name="That page isn't here").wait_for() assert page.locator('.site-footer').count() == 1, 'the 404 page has the site frame' @@ -242,7 +242,7 @@ def planned_program_is_listed(browser): assert card.count() == 1, entry['id'] assert ('Growing' in card.inner_text()) == (entry['status'] == 'planned') card.click() - page.wait_for_url('**/' + entry['id']) + page.wait_for_url('**/' + entry['id'] + '/') page.locator(APP_H1).first.wait_for() assert not page.locator('.load-error').count(), entry['id'] expected = sum(c['status'] == 'planned' or not c['sections'] for c in manifest['chapters']) @@ -354,7 +354,7 @@ def fulfill(route): assert 'Page not found' not in page.locator('h1').first.inner_text(), route assert not page.locator('.load-error').count(), route assert 'This activity could not load' not in page.inner_text('body'), route - assert 'Kernel Path' in page.title(), route + assert page.title().strip() and page.title() != 'Kernel Path', route # every page has its own search title assert page.locator('.brand-name').inner_text() == 'Kernel Path', route assert 'Playbook Path' not in page.inner_text('body'), route assert page.evaluate('document.documentElement.scrollWidth <= innerWidth'), route @@ -413,7 +413,7 @@ def fulfill(route): page.get_by_role('button', name='Program: Ansible automation on RHEL 9. Switch program').click() page.get_by_role('link', name='RHEL 9: Platform and versions', exact=True).click() page.get_by_role('heading', name='RHEL 9: Platform and versions', exact=True).wait_for() - assert page.url.endswith('/rhel9-ansible/platform') + assert page.url.endswith('/rhel9-ansible/platform/') assert not page.get_by_role('dialog').count() assert page.title() == 'RHEL 9: Platform and versions · Kernel Path' page.get_by_role('tab', name='Home lab', exact=True).click() @@ -503,13 +503,13 @@ def fulfill(route): nav = page.locator('#course-navigation') mark = "() => { const m = document.querySelector('.map-chapter.is-open .map-marker'), a = document.querySelector('.map-chapter.is-open a[aria-current=page]'); return Math.abs(m.getBoundingClientRect().top - a.getBoundingClientRect().top) }" assert page.evaluate(mark) < 1 - nav.locator('a[href$="/ch04/facts"]').click(); page.wait_for_timeout(700) + nav.locator('a[href$="/ch04/facts/"]').click(); page.wait_for_timeout(700) assert page.evaluate(mark) < 1 nav.get_by_role('button', name='Expand chapter 5').click() assert nav.get_by_role('button', name='Collapse chapter 5').count() and not nav.get_by_role('button', name='Collapse chapter 4').count() assert nav.locator('#map-ch04').get_attribute('inert') is not None box = nav.get_by_role('searchbox', name='Filter sections by title or number') - box.fill('vault') + box.fill('protecting secrets') visible = nav.locator('.map-section-link').evaluate_all('(ls) => ls.filter((l) => !l.closest("[inert]")).length') assert visible >= 1 and nav.locator('mark').count() >= 1 box.press('Enter'); page.locator('h1').filter(has_text='Vault').wait_for()