Codercat Studio | Cookbook

This cookbook contains a collection of useful HoudiniFX node setups. All examples are stored using the new Houdini recipe API and can be copied from this website directly into Houdini using our simple shelf tools. We also periodically make a backup of the recipes here.

Copy a snippet of interest from this page, then use Paste on the "Cookbook" shelf to paste it in.

If you would like to share a recipe, click the Create button and paste in the output of the "Copy" shelf tool. Note that you must be logged in to do so. If you have any questions or comments, feel free to reach out at codercatclub@gmail.com.

Get new recipes updates over RSS feed.

⚠️ Changelog

11.20.2025 - We updated the copy shelf tool to include the Houdini version, which is also visible on the recipes listing. Please update your shelf tools using the Python one-liner from the Recommended Install section.

📦 Recommended Install

To install Cookbook shelf tools copy this code to Houdini Python Shell and press Enter. You will see Cookbook shelf apper on the top panel.

To open Python Shell press Alt-Shift-P or go to main menu Window > Python Shell.

📂 Alternative Manual Install
⬇️ Download shelf tool file and place it to your Houdini toolbar folder:
  • Windows:
  • macOS:
  • Linux:

Replace USERNAME and X.Y with your account name and Houdini version.

Restart Houdini.

? About this project

Motivation and Goals

We created this Houdini Cookbook because:

  • We needed a way to quickly share and store small Houdini node setups. Previously, we attempted to create HDA libraries, but it was too cumbersome for our small team.
  • We believe there is a better way to share Houdini examples than by sharing entire Houdini files.
  • We enjoy sharing our small setups with the Houdini community.
  • We strongly believe in the idea of "Own Your Data," therefore we do not hold any published recipes hostage. All recipes are backed up once a day to a public Git repository here. Even if this service goes down, anyone can still download the full collection and use it directly with the Cookbook shelf tool or by using the two Python functions described below.
  • We also embrace the idea of decentralization, and we are considering open sourcing the Cookbook web service so that anyone can run it locally with their own collection or as their own public webpage. Let us know if this is something that interests you.

How Does It Work

In Houdini 20.5, SideFX introduced a new Recipe system that allows users to save collections of nodes into human-readable structured text files (JSON). Within this, they added a new collection of Python utilities (hou.data) that allows for creating and loading recipes programmatically.

In particular, the Cookbook shelf tools use hou.data.selectedItemsAsData(...) for copying nodes and hou.createItemsFromData(...) for pasting.

For this web service, we use the Go programming language and store all submitted recipes in plain text JSON files.

Lops Transforms To Sops
Extract names and transforms from USD objects and apply it to point attributes in SOPs. This allows for rebuilding the same layout in SOPs. This could be useful for converting manual layout to point instances or efficiently importing layout from external application trough USD format.
Nov 04, 2025 | 20.5.584 | solaris Cooked By: kif
ewogICAgIk9VVCI6IHsKICAgICAgICAiZmxhZ3MiOiB7CiAgICAgICAgICAgICJkaXNwbGF5IjogdHJ1ZSwKICAgICAgICAgICAgInJlbmRlciI6IHRydWUKICAgICAgICB9LAogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImNvcHl0b3BvaW50czEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDMuMDIsCiAgICAgICAgICAgIC01LjQ2CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJudWxsIgogICAgfSwKICAgICJfX2Nvb2tib29rTWV0YSI6IHsKICAgICAgICAiY29udGV4dCI6ICJzb3AiLAogICAgICAgICJ2ZXJzaW9uIjogIjIwLjUuNTg0IgogICAgfSwKICAgICJib3gxIjogewogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImRpdnJhdGUiOiBbCiAgICAgICAgICAgICAgICAyLAogICAgICAgICAgICAgICAgMiwKICAgICAgICAgICAgICAgIDIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInNjYWxlIjogMiwKICAgICAgICAgICAgInR5cGUiOiAicG9seW1lc2giCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDAKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImJveCIKICAgIH0sCiAgICAiY29weXRvcG9pbnRzMSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJtZXJnZXBhY2tlZDEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJzdHJpcF90cmFpbGluZ19kaWdpdHMyIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDEKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAidGFyZ2V0YXR0cmlicyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiYXBwbHlhdHRyaWJzIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogIiosXnYsXkFscGhhLF5OLF51cCxecHNjYWxlLF5zY2FsZSxeb3JpZW50LF5yb3QsXnBpdm90LF50cmFucyxedHJhbnNmb3JtIiwKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgImFwcGx5bWV0aG9kIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgImFwcGx5dG8jIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidXNlYXBwbHkjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiYXBwbHlhdHRyaWJzIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogIkFscGhhIiwKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgImFwcGx5bWV0aG9kIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogIm11bHQiLAogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiYXBwbHl0byMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ1c2VhcHBseSMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJhcHBseWF0dHJpYnMjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAidiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJhcHBseW1ldGhvZCMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICJhZGQiLAogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiYXBwbHl0byMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ1c2VhcHBseSMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ1c2VpZGF0dHJpYiI6IHRydWUKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMy4wNCwKICAgICAgICAgICAgLTMuNzIKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImNvcHl0b3BvaW50czo6Mi4wIgogICAgfSwKICAgICJleHRyYWN0Y2VudHJvaWQyIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImxvcGltcG9ydDEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJwYXJ0aXRpb250eXBlIjogInByaW1pdGl2ZXMiLAogICAgICAgICAgICAidHJhbnNmZXJhdHRyaWJ1dGVzIjogInBhdGggbmFtZSIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgNC43NCwKICAgICAgICAgICAgLTAuNTYKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImV4dHJhY3RjZW50cm9pZCIKICAgIH0sCiAgICAiZ2V0X3RyYW5zZm9ybV9mcm9tX3VzZCI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJleHRyYWN0Y2VudHJvaWQyIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAibG9wX2xheW91dCI6ICIuLi9sb3BuZXQxL09VVCIsCiAgICAgICAgICAgICJzbmlwcGV0IjogIjNAdHJhbnNmb3JtID0gdXNkX3dvcmxkdHJhbnNmb3JtKFwib3A6XCIrY2hzKFwibG9wX2xheW91dFwiKSwgc0BwYXRoKTsiCiAgICAgICAgfSwKICAgICAgICAicGFybXRlbXBsYXRlcyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImluc2VydF9hZnRlciI6ICJ2ZXhfdGhyZWFkam9ic2l6ZSIsCiAgICAgICAgICAgICAgICAicGFybXRlbXBsYXRlcyI6IHsKICAgICAgICAgICAgICAgICAgICAiZm9sZGVyX2dlbmVyYXRlZHBhcm1zX3NuaXBwZXQiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJHZW5lcmF0ZWQgQ2hhbm5lbCBQYXJhbWV0ZXJzIiwKICAgICAgICAgICAgICAgICAgICAgICAgInBhcm10ZW1wbGF0ZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG9wX2xheW91dCI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGFiZWwiOiAiTG9wIExheW91dCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1lbnVfdHlwZSI6ICJub3JtYWwiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzY3JpcHRfY2FsbGJhY2tfbGFuZ3VhZ2UiOiAiaHNjcmlwdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAidGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJncm91cF90eXBlIjogInNpbXBsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2lkZWZ4Ojpsb29rIjogImJsYW5rIgogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJmb2xkZXJfc2ltcGxlIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICA0Ljc0LAogICAgICAgICAgICAtMS43MgogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiYXR0cmlid3JhbmdsZSIKICAgIH0sCiAgICAibG9waW1wb3J0MSI6IHsKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJsb3BwYXRoIjogIi4uL2xvcG5ldDEvT1VUIiwKICAgICAgICAgICAgInByaW1wYXR0ZXJuIjogIioiCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDQuNzQsCiAgICAgICAgICAgIDAuNQogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAibG9waW1wb3J0OjoyLjAiCiAgICB9LAogICAgImxvcG5ldDEiOiB7CiAgICAgICAgImNoaWxkcmVuIjogewogICAgICAgICAgICAiT1VUIjogewogICAgICAgICAgICAgICAgImZsYWdzIjogewogICAgICAgICAgICAgICAgICAgICJkaXNwbGF5IjogdHJ1ZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbSI6ICJ0b3J1czEiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAgICAgICAgIC0wLjk5LAogICAgICAgICAgICAgICAgICAgIC0wLjI2CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAibnVsbCIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgImJveDEiOiB7CiAgICAgICAgICAgICAgICAiZmxhZ3MiOiB7CiAgICAgICAgICAgICAgICAgICAgInJlbmRlciI6IHRydWUKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICAgICAgICAgInIiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgIDQ1LjM5Njc1Nzc5MTUxNTczLAogICAgICAgICAgICAgICAgICAgICAgICA5LjQ3MzEyNzY2MzY4Mjg1LAogICAgICAgICAgICAgICAgICAgICAgICAtMjYuMDQ1Mjc3MjMyNDA2ODA0CiAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAtMC45NiwKICAgICAgICAgICAgICAgICAgICAzLjA4CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInR5cGUiOiAiY3ViZSIKICAgICAgICAgICAgfSwKICAgICAgICAgICAgInRvcnVzMSI6IHsKICAgICAgICAgICAgICAgICJlZGl0YWJsZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgInNvcG5ldC9jcmVhdGUiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJjaGlsZHJlbiI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0b3J1czEiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZsYWdzIjogewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGlzcGxheSI6IHRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZW5kZXIiOiB0cnVlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyYWQiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjI1CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiOiAidG9ydXMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogInN1Ym5ldCIKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICJmcm9tIjogImJveDEiLAogICAgICAgICAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAgICAgICAgICJyIjogWwogICAgICAgICAgICAgICAgICAgICAgICA0Ni42NDEyODQwNjMzMzAwMjYsCiAgICAgICAgICAgICAgICAgICAgICAgIDIxLjE5MDA4MjQ2MjIxMjc4MiwKICAgICAgICAgICAgICAgICAgICAgICAgLTE3LjY4NzY5NDY5OTcwNzE2NgogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgICAgInQiOiBbCiAgICAgICAgICAgICAgICAgICAgICAgIDAuNTA5NjU4OTE0NTgzOTU3OCwKICAgICAgICAgICAgICAgICAgICAgICAgMC42OTMzNjQxNDg5ODczMjksCiAgICAgICAgICAgICAgICAgICAgICAgIDAuODAwMTQ5MTMwMjI5NjY5OQogICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgICAgICAgICAgLTAuOTksCiAgICAgICAgICAgICAgICAgICAgMS4zMQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJ0eXBlIjogInNvcGNyZWF0ZSIKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICA0Ljc0LAogICAgICAgICAgICAxLjkKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImxvcG5ldCIKICAgIH0sCiAgICAibWVyZ2VwYWNrZWQxIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImJveDEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJ0b3J1czEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMQogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJuYW1lcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAibmFtZSMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICJib3giLAogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidHJlYXRhc2ZvbGRlciMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ1c2VpbnB1dCMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJuYW1lIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogInRvcnVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInRyZWF0YXNmb2xkZXIjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidXNlaW5wdXQjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDEuMzMsCiAgICAgICAgICAgIC0xLjYyCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJtZXJnZXBhY2tlZCIKICAgIH0sCiAgICAic3RyaXBfdHJhaWxpbmdfZGlnaXRzMiI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJnZXRfdHJhbnNmb3JtX2Zyb21fdXNkIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAic25pcHBldCI6ICIvLyBTdHJpcCB0cmFpbGluZyBudW1iZXJzIGFuZCB1bmRlcnNjb3JlK251bWJlcnMgZnJvbSBuYW1lIGF0dHJpYnV0ZVxuLy8gZS5nLiBcImFwcGxlMlwiIC1cdTAwM2UgXCJhcHBsZVwiLCBcImFuZW1vbmUyXzAwMVwiIC1cdTAwM2UgXCJhbmVtb25lXCIsIFwiYXBwbGUzXzAwNFwiIC1cdTAwM2UgXCJhcHBsZVwiXG5zdHJpbmcgb3JpZ2luYWxfbmFtZSA9IHNAbmFtZTtcbnN0cmluZyBjbGVhbmVkX25hbWUgPSBvcmlnaW5hbF9uYW1lO1xuXG4vLyBGaXJzdCwgc3RyaXAgdW5kZXJzY29yZSBmb2xsb3dlZCBieSBkaWdpdHMgKGUuZy4gXCJfMDAxXCIsIFwiXzAwNFwiKVxuaW50IHVuZGVyc2NvcmVfcG9zID0gLTE7XG5pbnQgbGVuID0gbGVuKGNsZWFuZWRfbmFtZSk7XG5cbi8vIEZpbmQgdGhlIGxhc3QgdW5kZXJzY29yZSBmb2xsb3dlZCBvbmx5IGJ5IGRpZ2l0c1xuZm9yIChpbnQgaSA9IGxlbiAtIDE7IGkgXHUwMDNlPSAwOyBpLS0pIHtcbiAgICBpZiAoY2xlYW5lZF9uYW1lW2ldID09IFwiX1wiKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIGV2ZXJ5dGhpbmcgYWZ0ZXIgdGhpcyB1bmRlcnNjb3JlIGlzIGRpZ2l0c1xuICAgICAgICBpbnQgYWxsX2RpZ2l0cyA9IDE7XG4gICAgICAgIGZvciAoaW50IGogPSBpICsgMTsgaiBcdTAwM2MgbGVuOyBqKyspIHtcbiAgICAgICAgICAgIGlmICghaXNkaWdpdChjbGVhbmVkX25hbWVbal0pKSB7XG4gICAgICAgICAgICAgICAgYWxsX2RpZ2l0cyA9IDA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFsbF9kaWdpdHMgXHUwMDI2XHUwMDI2IGkgKyAxIFx1MDAzYyBsZW4pIHsgLy8gTWFrZSBzdXJlIHRoZXJlJ3MgYXQgbGVhc3Qgb25lIGRpZ2l0IGFmdGVyIHVuZGVyc2NvcmVcbiAgICAgICAgICAgIHVuZGVyc2NvcmVfcG9zID0gaTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBTdHJpcCB0aGUgdW5kZXJzY29yZSBhbmQgdHJhaWxpbmcgZGlnaXRzIGlmIGZvdW5kXG5pZiAodW5kZXJzY29yZV9wb3MgXHUwMDNlPSAwKSB7XG4gICAgY2xlYW5lZF9uYW1lID0gY2xlYW5lZF9uYW1lWzA6dW5kZXJzY29yZV9wb3NdO1xufVxuXG4vLyBOb3cgc3RyaXAgYW55IHJlbWFpbmluZyB0cmFpbGluZyBkaWdpdHMgZnJvbSB0aGUgYmFzZSBuYW1lXG5sZW4gPSBsZW4oY2xlYW5lZF9uYW1lKTtcbmludCBsYXN0X2FscGhhID0gbGVuIC0gMTtcblxuZm9yIChpbnQgaSA9IGxlbiAtIDE7IGkgXHUwMDNlPSAwOyBpLS0pIHtcbiAgICBzdHJpbmcgY2hhciA9IGNsZWFuZWRfbmFtZVtpXTtcbiAgICBpZiAoIWlzZGlnaXQoY2hhcikpIHtcbiAgICAgICAgbGFzdF9hbHBoYSA9IGk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbn1cblxuLy8gRXh0cmFjdCBzdWJzdHJpbmcgdXAgdG8gdGhlIGxhc3Qgbm9uLWRpZ2l0IGNoYXJhY3RlclxuaWYgKGxhc3RfYWxwaGEgXHUwMDNlPSAwKSB7XG4gICAgY2xlYW5lZF9uYW1lID0gY2xlYW5lZF9uYW1lWzA6bGFzdF9hbHBoYSArIDFdO1xufSBlbHNlIHtcbiAgICAvLyBJZiB0aGUgZW50aXJlIHN0cmluZyBpcyBkaWdpdHMsIGtlZXAgaXQgYXMgaXNcbiAgICBjbGVhbmVkX25hbWUgPSBvcmlnaW5hbF9uYW1lO1xufVxuXG4vLyBTZXQgdGhlIGNsZWFuZWQgbmFtZSBiYWNrIHRvIHRoZSBuYW1lIGF0dHJpYnV0ZVxuc0BuYW1lID0gY2xlYW5lZF9uYW1lOyIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgNC43NCwKICAgICAgICAgICAgLTIuOAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiYXR0cmlid3JhbmdsZSIKICAgIH0sCiAgICAidG9ydXMxIjogewogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInJhZCI6IFsKICAgICAgICAgICAgICAgIDAuNSwKICAgICAgICAgICAgICAgIDAuMjUKICAgICAgICAgICAgXQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAyLjI2LAogICAgICAgICAgICAwLjAzCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJ0b3J1cyIKICAgIH0KfQ==
Inside Body Fluid Particles
Various particle shapes scattered in volume. Useful for adding details in macro scenes bio scenes. This recipe also show an example on how to randomly copy different geometry to points base on name attribute.
Nov 03, 2025 | 20.5.584 | geometry Cooked By: kif
ewogICAgIk9VVCI6IHsKICAgICAgICAiZmxhZ3MiOiB7CiAgICAgICAgICAgICJkaXNwbGF5IjogdHJ1ZSwKICAgICAgICAgICAgInJlbmRlciI6IHRydWUKICAgICAgICB9LAogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImNvcHl0b3BvaW50czEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDYuNDksCiAgICAgICAgICAgIC0xMC4zNAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAibnVsbCIKICAgIH0sCiAgICAiX19jb29rYm9va01ldGEiOiB7CiAgICAgICAgImNvbnRleHQiOiAic29wIiwKICAgICAgICAidmVyc2lvbiI6ICIyMC41LjU4NCIKICAgIH0sCiAgICAiYXR0cmliYWRqdXN0aW50ZWdlcjEiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAicHNjYWxlIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiYXR0cmliIjogIm5hbWUiLAogICAgICAgICAgICAibWF4dmFsdWUiOiAzLAogICAgICAgICAgICAibnZhbHVlcyI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiZm9sZGVyM18jIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidmFsdWUjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidmFsdWVzIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInZhbHVldHlwZSMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ3ZWlnaHQjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiZm9sZGVyM18jIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidmFsdWUjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAxLAogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidmFsdWVzIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInZhbHVldHlwZSMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ3ZWlnaHQjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiZm9sZGVyM18jIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidmFsdWUjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAyLAogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidmFsdWVzIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInZhbHVldHlwZSMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ3ZWlnaHQjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiZm9sZGVyM18jIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidmFsdWUjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAzLAogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidmFsdWVzIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInZhbHVldHlwZSMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ3ZWlnaHQjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAwLjI5LAogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAib3V0bGllcnNlZWQiOiA5MCwKICAgICAgICAgICAgInJhbmRvbXNlZWQiOiA1MiwKICAgICAgICAgICAgInJhbmdlbWV0aG9kIjogInNwZWNpZmljIiwKICAgICAgICAgICAgInJlbWFwcmFtcCI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImNvbnN0YW50IiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMCwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAwLjE2NjY2NjY3MTYzMzcyMDQKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJjb25zdGFudCIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAuMTM0OTA5NjAwMDE5NDU0OTYsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMC4zNzUKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJjb25zdGFudCIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAuNzkxMzc2ODg4NzUxOTgzNiwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAxCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAiY29uc3RhbnQiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAxLAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDEKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgInZhbHVldHlwZSI6ICJyYW5kIgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAxMi4wNSwKICAgICAgICAgICAgLTcuMDIKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImF0dHJpYmFkanVzdGludGVnZXIiCiAgICB9LAogICAgImNvcHl0b3BvaW50czEiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAibWVyZ2VwYWNrZWQxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAidXYiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMQogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJ0YXJnZXRhdHRyaWJzIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJhcHBseWF0dHJpYnMjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAiKixedixeQWxwaGEsXk4sXnVwLF5wc2NhbGUsXnNjYWxlLF5vcmllbnQsXnJvdCxecGl2b3QsXnRyYW5zLF50cmFuc2Zvcm0iLAogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiYXBwbHltZXRob2QjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiYXBwbHl0byMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ1c2VhcHBseSMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJhcHBseWF0dHJpYnMjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAiQWxwaGEiLAogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAiYXBwbHltZXRob2QjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAibXVsdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJhcHBseXRvIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInVzZWFwcGx5IyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImFwcGx5YXR0cmlicyMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICJ2IiwKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgImFwcGx5bWV0aG9kIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogImFkZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJhcHBseXRvIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInVzZWFwcGx5IyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgInVzZWlkYXR0cmliIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICA2LjQ5LAogICAgICAgICAgICAtOS4yNAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiY29weXRvcG9pbnRzOjoyLjAiCiAgICB9LAogICAgImRpdmlkZTEiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAidHJhbnNmb3JtMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgMQogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiZGl2aWRlIgogICAgfSwKICAgICJkaXZpZGUyIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogIm1vdW50YWluMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMy41MiwKICAgICAgICAgICAgMS4yNQogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiZGl2aWRlIgogICAgfSwKICAgICJkaXZpZGUzIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogIm1vdW50YWluMyIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgNi42NiwKICAgICAgICAgICAgMC41MwogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiZGl2aWRlIgogICAgfSwKICAgICJkaXZpZGU0IjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInRyYW5zZm9ybTIiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDkuNDYsCiAgICAgICAgICAgIDAuNzgKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImRpdmlkZSIKICAgIH0sCiAgICAiaXNvb2Zmc2V0MSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJzcGhlcmUxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAic2FtcGxlZGl2IjogNTAKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMTIuMDUsCiAgICAgICAgICAgIC0zLjAyCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJpc29vZmZzZXQiCiAgICB9LAogICAgIm1lcmdlcGFja2VkMSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJub3JtYWwzIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAibm9ybWFsMiIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAxCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImRpdmlkZTMiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMgogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJub3JtYWw0IiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDMKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAibmFtZXMiOiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIm5hbWUjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAiaGFpciIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ0cmVhdGFzZm9sZGVyIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInVzZWlucHV0IyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIm5hbWUjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAiY2VsbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ0cmVhdGFzZm9sZGVyIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInVzZWlucHV0IyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIm5hbWUjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAic3BlYyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2aXNpYmxlIjogZmFsc2UKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICJ0cmVhdGFzZm9sZGVyIyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInVzZWlucHV0IyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIm5hbWUjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAiZG5hIiwKICAgICAgICAgICAgICAgICAgICAgICAgInZpc2libGUiOiBmYWxzZQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgInRyZWF0YXNmb2xkZXIjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICAidXNlaW5wdXQjIjogewogICAgICAgICAgICAgICAgICAgICAgICAidmlzaWJsZSI6IGZhbHNlCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDYuMjksCiAgICAgICAgICAgIC0zLjUKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogIm1lcmdlcGFja2VkIgogICAgfSwKICAgICJtb3VudGFpbjEiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAic3BoZXJlMiIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImFtcGxpdHVkZSI6IDAuMjUsCiAgICAgICAgICAgICJhdHRyaWJzIjogIlAiLAogICAgICAgICAgICAiZGlzcGxhY2UiOiB0cnVlLAogICAgICAgICAgICAiZWxlbWVudHNpemUiOiAwLjQ1LAogICAgICAgICAgICAiZnJhY3RhbCI6ICJobWZUIiwKICAgICAgICAgICAgIm5vaXNlcmFuZ2UiOiAiemNlbnRlcmVkIiwKICAgICAgICAgICAgIm9jdCI6IDgsCiAgICAgICAgICAgICJyb3VnaCI6IDAuNAogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAzLjUyLAogICAgICAgICAgICAyLjI1CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJhdHRyaWJub2lzZTo6Mi4wIgogICAgfSwKICAgICJtb3VudGFpbjIiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAic3BpcmFsMiIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImFtcGxpdHVkZSI6IDAuMSwKICAgICAgICAgICAgImF0dHJpYnMiOiAiUCIsCiAgICAgICAgICAgICJkaXNwbGFjZSI6IHRydWUsCiAgICAgICAgICAgICJlbGVtZW50c2l6ZSI6IDAuNzMsCiAgICAgICAgICAgICJmcmFjdGFsIjogImhtZlQiLAogICAgICAgICAgICAibGFjIjogMS4yMzcsCiAgICAgICAgICAgICJub2lzZXJhbmdlIjogInpjZW50ZXJlZCIsCiAgICAgICAgICAgICJvY3QiOiAxLAogICAgICAgICAgICAicm91Z2giOiAwLjEzNwogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICA5LjQ2LAogICAgICAgICAgICAzLjc4CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJhdHRyaWJub2lzZTo6Mi4wIgogICAgfSwKICAgICJtb3VudGFpbjMiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAic3BlYyIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImFtcGxpdHVkZSI6IDAuMSwKICAgICAgICAgICAgImF0dHJpYnMiOiAiUCIsCiAgICAgICAgICAgICJkaXNwbGFjZSI6IHRydWUsCiAgICAgICAgICAgICJlbGVtZW50c2l6ZSI6IDAuMDksCiAgICAgICAgICAgICJmcmFjdGFsIjogImhtZlQiLAogICAgICAgICAgICAibm9pc2VyYW5nZSI6ICJ6Y2VudGVyZWQiLAogICAgICAgICAgICAib2N0IjogOCwKICAgICAgICAgICAgIm9mZnNldCI6IDYsCiAgICAgICAgICAgICJvdXRwdXRyYXciOiBmYWxzZSwKICAgICAgICAgICAgInJvdWdoIjogMC40CiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDYuNjYsCiAgICAgICAgICAgIDEuNTMKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImF0dHJpYm5vaXNlOjoyLjAiCiAgICB9LAogICAgIm5vcm1hbDIiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAiZGl2aWRlMiIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImN1c3BhbmdsZSI6IDEzMC43CiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDMuNTIsCiAgICAgICAgICAgIDAuMjUKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogIm5vcm1hbCIKICAgIH0sCiAgICAibm9ybWFsMyI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJkaXZpZGUxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiY3VzcGFuZ2xlIjogMTE2LjUKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMCwKICAgICAgICAgICAgMAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAibm9ybWFsIgogICAgfSwKICAgICJub3JtYWw0IjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImRpdmlkZTQiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJjdXNwYW5nbGUiOiAxMTYuNQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICA5LjQ2LAogICAgICAgICAgICAtMC4yMgogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAibm9ybWFsIgogICAgfSwKICAgICJvcmllbnQiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAic2NhdHRlcjEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJkaW1lbnNpb25zIjogNCwKICAgICAgICAgICAgIm5hbWUiOiAib3JpZW50IiwKICAgICAgICAgICAgInNlZWQiOiA1NTA4CiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDEyLjA0LAogICAgICAgICAgICAtNS4wMgogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiYXR0cmlicmFuZG9taXplIgogICAgfSwKICAgICJwc2NhbGUiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAib3JpZW50IiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiZGltZW5zaW9ucyI6IDEsCiAgICAgICAgICAgICJkaXN0cmlidXRpb24iOiAicmFtcCIsCiAgICAgICAgICAgICJuYW1lIjogInBzY2FsZSIsCiAgICAgICAgICAgICJyYW1wIjogWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAiY29uc3RhbnQiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAwLAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDAuMjUKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJjb25zdGFudCIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAuMDg2MjMwODc0MDYxNTg0NDcsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMC40Mzc1CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAiY29uc3RhbnQiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAwLjkyMjExNDA3NDIzMDE5NDEsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImNvbnN0YW50IiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMSwKICAgICAgICAgICAgICAgICAgICAidmFsdWUiOiAxCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJzY2FsZSI6IDAuNiwKICAgICAgICAgICAgInNlZWQiOiA1NjI2CiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDEyLjA0LAogICAgICAgICAgICAtNi4wMgogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiYXR0cmlicmFuZG9taXplIgogICAgfSwKICAgICJzY2F0dGVyMSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJpc29vZmZzZXQxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAibnB0cyI6IDUwLAogICAgICAgICAgICAicmVsYXhpdGVyYXRpb25zIjogMiwKICAgICAgICAgICAgInNjYWxlcmFkaWlieSI6IDAuNjIyCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDEyLjA1LAogICAgICAgICAgICAtNC4wMgogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAic2NhdHRlcjo6Mi4wIgogICAgfSwKICAgICJzcGVjIjogewogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImRpdnMiOiA5LAogICAgICAgICAgICAicmFkIjogWwogICAgICAgICAgICAgICAgMC4wMSwKICAgICAgICAgICAgICAgIDAuMDEKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInJldmVyc2UiOiBmYWxzZSwKICAgICAgICAgICAgInR5cGUiOiAicG9seSIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgNi42NiwKICAgICAgICAgICAgMi41MwogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiY2lyY2xlIgogICAgfSwKICAgICJzcGhlcmUxIjogewogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInJhZCI6IFsKICAgICAgICAgICAgICAgIDIsCiAgICAgICAgICAgICAgICAyLAogICAgICAgICAgICAgICAgMgogICAgICAgICAgICBdLAogICAgICAgICAgICAidHlwZSI6ICJwb2x5bWVzaCIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMTIuMDUsCiAgICAgICAgICAgIC0yLjAyCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJzcGhlcmUiCiAgICB9LAogICAgInNwaGVyZTIiOiB7CiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAicmFkIjogWwogICAgICAgICAgICAgICAgMC41LAogICAgICAgICAgICAgICAgMC41LAogICAgICAgICAgICAgICAgMC41CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJzY2FsZSI6IDAuMDUsCiAgICAgICAgICAgICJ0eXBlIjogInBvbHkiCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDMuNTIsCiAgICAgICAgICAgIDMuMjUKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInNwaGVyZSIKICAgIH0sCiAgICAic3BpcmFsMSI6IHsKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJkaXZzcGVydHVybiI6IDE2LAogICAgICAgICAgICAiaGVpZ2h0IjogMS41NiwKICAgICAgICAgICAgInJhZGl1c2luY3JlYXNlcGVydHVybiI6IDAuMjkxNjY2NjY2NjY2NjY2NywKICAgICAgICAgICAgInR1cm5zIjogMC43NQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICA0CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJzcGlyYWwiCiAgICB9LAogICAgInNwaXJhbDIiOiB7CiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiZGl2c3BlcnR1cm4iOiAxNiwKICAgICAgICAgICAgImhlaWdodCI6IDIuMTIsCiAgICAgICAgICAgICJyYWRpdXNpbmNyZWFzZXBlcnR1cm4iOiAwLjA4LAogICAgICAgICAgICAic3RhcnRyYWRpdXMiOiAwLjI5LAogICAgICAgICAgICAidHVybnMiOiAyLjA3CiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDkuNDYsCiAgICAgICAgICAgIDQuNzgKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInNwaXJhbCIKICAgIH0sCiAgICAic3dlZXAxIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInNwaXJhbDEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJhcHBseXNjYWxlIjogdHJ1ZSwKICAgICAgICAgICAgImNhcGRpdnMiOiAxLAogICAgICAgICAgICAiY2Fwc2NhbGUiOiAwLAogICAgICAgICAgICAiY29scyI6IDUsCiAgICAgICAgICAgICJjb21wdXRldXZzIjogdHJ1ZSwKICAgICAgICAgICAgImVuZGNhcHR5cGUiOiAiZ3JpZCIsCiAgICAgICAgICAgICJyYWRpdXMiOiAwLjAxNSwKICAgICAgICAgICAgInNjYWxlcmFtcCI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImJlemllciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMC4yMDgzMzMzMjgzNjYyNzk2CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAiYmV6aWVyIiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMC41MTQ2MDM2MTQ4MDcxMjg5LAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDEKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJiZXppZXIiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAxLAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDAuMTI1MDAwMDE0OTAxMTYxMgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAic3VyZmFjZXNoYXBlIjogInR1YmUiCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDMKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInN3ZWVwOjoyLjAiCiAgICB9LAogICAgInN3ZWVwMiI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJtb3VudGFpbjIiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJhcHBseXNjYWxlIjogdHJ1ZSwKICAgICAgICAgICAgImNhcGRpdnMiOiAxLAogICAgICAgICAgICAiY2Fwc2NhbGUiOiAwLAogICAgICAgICAgICAiY29scyI6IDUsCiAgICAgICAgICAgICJjb21wdXRldXZzIjogdHJ1ZSwKICAgICAgICAgICAgImVuZGNhcHR5cGUiOiAiZ3JpZCIsCiAgICAgICAgICAgICJyYWRpdXMiOiAwLjAxNSwKICAgICAgICAgICAgInNjYWxlcmFtcCI6IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaW50ZXJwIjogImJlemllciIsCiAgICAgICAgICAgICAgICAgICAgInBvcyI6IDAsCiAgICAgICAgICAgICAgICAgICAgInZhbHVlIjogMC4yMDgzMzMzMjgzNjYyNzk2CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJpbnRlcnAiOiAiYmV6aWVyIiwKICAgICAgICAgICAgICAgICAgICAicG9zIjogMC41MTQ2MDM2MTQ4MDcxMjg5LAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDEKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImludGVycCI6ICJiZXppZXIiLAogICAgICAgICAgICAgICAgICAgICJwb3MiOiAxLAogICAgICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDAuMTI1MDAwMDE0OTAxMTYxMgogICAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAic3VyZmFjZXNoYXBlIjogInR1YmUiCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDkuNDYsCiAgICAgICAgICAgIDIuNzgKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInN3ZWVwOjoyLjAiCiAgICB9LAogICAgInRyYW5zZm9ybTEiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAic3dlZXAxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAic2NhbGUiOiAwLjM1CiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDIKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogInhmb3JtIgogICAgfSwKICAgICJ0cmFuc2Zvcm0yIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInN3ZWVwMiIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInNjYWxlIjogMC4zNQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICA5LjQ2LAogICAgICAgICAgICAxLjc4CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJ4Zm9ybSIKICAgIH0sCiAgICAidXYiOiB7CiAgICAgICAgImlucHV0cyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAiYXR0cmliYWRqdXN0aW50ZWdlcjEiLAogICAgICAgICAgICAgICAgImZyb21faW5kZXgiOiAwLAogICAgICAgICAgICAgICAgInRvX2luZGV4IjogMAogICAgICAgICAgICB9CiAgICAgICAgXSwKICAgICAgICAicGFybXMiOiB7CiAgICAgICAgICAgICJzbmlwcGV0IjogInZAdXYgPSBzZXQoQHB0bnVtIC8gZmxvYXQoQG51bXB0KSwgMCk7IgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAxMi4wNCwKICAgICAgICAgICAgLTguMDYKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImF0dHJpYndyYW5nbGUiCiAgICB9Cn0=