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
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.
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==
Takes the boundary edge of a surface geometry and insets copies of it towards the center with equal spacing between iterations. Works best on Convex shapes. This was created because the built-in copy and transform with scale of 0.9 creates uneven spacing as the iteration progresses.
Nov 04, 2025 | 20.5.584 | vex
Cooked By: snay
ewogICAgIl9fY29va2Jvb2tNZXRhIjogewogICAgICAgICJjb250ZXh0IjogInNvcCIsCiAgICAgICAgInZlcnNpb24iOiAiMjAuNS41ODQiCiAgICB9LAogICAgImF0dHJpYnByb21vdGUxIjogewogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogInJlc2FtcGxlMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImluY2xhc3MiOiAicHJpbWl0aXZlIiwKICAgICAgICAgICAgImlubmFtZSI6ICJjb3B5bnVtIgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICAwCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJhdHRyaWJwcm9tb3RlIgogICAgfSwKICAgICJjb3B5MSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJlZGdlZ3JvdXBfdG9fY3VydmUxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiZG9jb3B5YXR0cmliIjogdHJ1ZSwKICAgICAgICAgICAgIm5jeSI6IDEyCiAgICAgICAgfSwKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDIKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImNvcHl4Zm9ybSIKICAgIH0sCiAgICAiZWRnZWdyb3VwX3RvX2N1cnZlMSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJ1bnNoYXJlZF9lZGdlX2dyb3VwIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBhcm1zIjogewogICAgICAgICAgICAiZ3JvdXAiOiAidW5zaGFyZWRFZGdlIgogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICAzCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJsYWJzOjplZGdlZ3JvdXBfdG9fY3VydmU6OjEuMCIKICAgIH0sCiAgICAiZXh0cmFjdGNlbnRyb2lkMSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJncmlkMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInBpZWNlYXR0cmliIjogIiIKICAgICAgICB9LAogICAgICAgICJwb3NpdGlvbiI6IFsKICAgICAgICAgICAgMi40MiwKICAgICAgICAgICAgMgogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiZXh0cmFjdGNlbnRyb2lkIgogICAgfSwKICAgICJncmlkMSI6IHsKICAgICAgICAicG9zaXRpb24iOiBbCiAgICAgICAgICAgIDAsCiAgICAgICAgICAgIDUKICAgICAgICBdLAogICAgICAgICJ0eXBlIjogImdyaWQiCiAgICB9LAogICAgInJlc2FtcGxlMSI6IHsKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJjb3B5MSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImRvY3VydmVudW1hdHRyIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICAxCiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJyZXNhbXBsZSIKICAgIH0sCiAgICAidHJhbnNmb3JtX3BvaW50c190b3dhcmRzX2NlbnRlciI6IHsKICAgICAgICAiY29sb3IiOiBbCiAgICAgICAgICAgIDAuOCwKICAgICAgICAgICAgMC4wMiwKICAgICAgICAgICAgMC4wMgogICAgICAgIF0sCiAgICAgICAgImZsYWdzIjogewogICAgICAgICAgICAiY29sb3JkZWZhdWx0IjogZmFsc2UsCiAgICAgICAgICAgICJkaXNwbGF5IjogdHJ1ZSwKICAgICAgICAgICAgInJlbmRlciI6IHRydWUKICAgICAgICB9LAogICAgICAgICJpbnB1dHMiOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJmcm9tIjogImF0dHJpYnByb21vdGUxIiwKICAgICAgICAgICAgICAgICJmcm9tX2luZGV4IjogMCwKICAgICAgICAgICAgICAgICJ0b19pbmRleCI6IDAKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImZyb20iOiAiZXh0cmFjdGNlbnRyb2lkMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAxCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgInNuaXBwZXQiOiAiZmxvYXQgdG90YWwgPSBjaGYoXCJ0b3RhbFwiKTtcbnZlY3RvciBjZW50cm9pZCA9IHBvaW50KDEsIFwiUFwiLCAwKTtcbnZAUCA9IGxlcnAodkBQLCBjZW50cm9pZCwgQGNvcHludW0vdG90YWwpOyIsCiAgICAgICAgICAgICJ0b3RhbCI6IHsKICAgICAgICAgICAgICAgICJleHByZXNzaW9uIjogImNoKFwiLi4vY29weTEvbmN5XCIpIgogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICAicGFybXRlbXBsYXRlcyI6IFsKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImluc2VydF9hZnRlciI6ICJ2ZXhfdGhyZWFkam9ic2l6ZSIsCiAgICAgICAgICAgICAgICAicGFybXRlbXBsYXRlcyI6IHsKICAgICAgICAgICAgICAgICAgICAiZm9sZGVyX2dlbmVyYXRlZHBhcm1zX3NuaXBwZXQiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsYWJlbCI6ICJHZW5lcmF0ZWQgQ2hhbm5lbCBQYXJhbWV0ZXJzIiwKICAgICAgICAgICAgICAgICAgICAgICAgInBhcm10ZW1wbGF0ZXMiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidG90YWwiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxhYmVsIjogIlRvdGFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibWF4X3ZhbHVlIjogMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIjogImZsb2F0IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAic2NyaXB0X2NhbGxiYWNrX2xhbmd1YWdlIjogImhzY3JpcHQiLAogICAgICAgICAgICAgICAgICAgICAgICAidGFncyI6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJncm91cF90eXBlIjogInNpbXBsZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2lkZWZ4Ojpsb29rIjogImJsYW5rIgogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSI6ICJmb2xkZXJfc2ltcGxlIgogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIF0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICAtMS4wNAogICAgICAgIF0sCiAgICAgICAgInR5cGUiOiAiYXR0cmlid3JhbmdsZSIKICAgIH0sCiAgICAidW5zaGFyZWRfZWRnZV9ncm91cCI6IHsKICAgICAgICAiZmxhZ3MiOiB7CiAgICAgICAgICAgICJoaWdobGlnaHQiOiB0cnVlCiAgICAgICAgfSwKICAgICAgICAiaW5wdXRzIjogWwogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZnJvbSI6ICJncmlkMSIsCiAgICAgICAgICAgICAgICAiZnJvbV9pbmRleCI6IDAsCiAgICAgICAgICAgICAgICAidG9faW5kZXgiOiAwCiAgICAgICAgICAgIH0KICAgICAgICBdLAogICAgICAgICJwYXJtcyI6IHsKICAgICAgICAgICAgImdyb3VwYmFzZSI6IGZhbHNlLAogICAgICAgICAgICAiZ3JvdXBlZGdlcyI6IHRydWUsCiAgICAgICAgICAgICJncm91cG5hbWUiOiAidW5zaGFyZWRFZGdlIiwKICAgICAgICAgICAgImdyb3VwdHlwZSI6ICJlZGdlIiwKICAgICAgICAgICAgInVuc2hhcmVkIjogdHJ1ZQogICAgICAgIH0sCiAgICAgICAgInBvc2l0aW9uIjogWwogICAgICAgICAgICAwLAogICAgICAgICAgICA0CiAgICAgICAgXSwKICAgICAgICAidHlwZSI6ICJncm91cGNyZWF0ZSIKICAgIH0KfQ==
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=