all:
  children:
    zuul_unreachable:
      hosts: {}
  hosts:
    debian-bookworm:
      ansible_connection: ssh
      ansible_host: 2a13:1a81:8000:3124:f816:3eff:febf:1252
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: c8605a54-ad36-442c-b64c-ef0fdb93af7d
        host_id: ec4f54fa666de9bc553bc59c41683f12345b665d0b1af00d715e7318
        interface_ip: 2a13:1a81:8000:3124:f816:3eff:febf:1252
        label: debian-bookworm
        node_properties: {}
        private_ipv4: 10.128.0.105
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.16
        public_ipv6: 2a13:1a81:8000:3124:f816:3eff:febf:1252
        region: null
        slot: null
  vars:
    zuul:
      _inheritance_path:
      - '<Job base explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job yamllint explicit: None implied: {MatchAny:{ImpliedBranchMatcher:main}}
        source: osism/zuul-jobs/.zuul.yaml@main#59>'
      - '<Job yamllint explicit: None implied: None source: osism/testbed/.zuul.yaml@main#171>'
      ansible_version: '9'
      attempts: 1
      branch: main
      build: 67d31d8fa0c345ae91c4bf33c161998b
      build_refs:
      - branch: main
        change: '2777'
        change_message: "chore(deps): update dependency gruntwork-io/terragrunt to
          v0.93.3\n\nThis PR contains the following updates:\n\n| Package | Update
          | Change |\n|---|---|---|\n| [gruntwork-io/terragrunt](https://redirect.github.com/gruntwork-io/terragrunt)
          | minor | `v0.88.0` -> `v0.93.3` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>gruntwork-io/terragrunt
          (gruntwork-io/terragrunt)</summary>\n\n### [`v0.93.3`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.3)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.93.2...v0.93.3)\n\n####
          \U0001F41B Bug Fixes\n\n##### `hcl validate --inputs` regression on `validation`
          blocks resolved\n\nA bug introduced in `v0.93.1` preventing `hcl validate
          --inputs` from succeeding on OpenTofu/Terraform modules with variables containing
          `validation` blocks. This was caused by an error in the update to OpenTofu/Terraform
          `.tf` file parsing by Terragrunt in the `hcl validate` command.\n\nThat
          bug has been resolved.\n\n#### What's Changed\n\n- fix: Allow validation
          blocks in inputs by [@&#8203;ThisGuyCodes](https://redirect.github.com/ThisGuyCodes)
          in [#&#8203;5063](https://redirect.github.com/gruntwork-io/terragrunt/pull/5063)\n-
          chore: Updating pin to `v0.93.2` for remote references by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5058](https://redirect.github.com/gruntwork-io/terragrunt/pull/5058)\n-
          build(deps): bump tar from 7.5.1 to 7.5.2 in /docs-starlight by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]
          in [#&#8203;5057](https://redirect.github.com/gruntwork-io/terragrunt/pull/5057)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.93.2...v0.93.3>\n\n###
          [`v0.93.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.2)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.93.1...v0.93.2)\n\n####
          \u2728 New Features\n\n##### The `list` command now supports the `dot` fomat\n\nThe
          `list` command can now render its output in the Graphviz [DOT language](https://en.wikipedia.org/wiki/DOT_\\(graph_description_language\\)):\n\n```bash\n$
          terragrunt list --format=dot --dependencies\ndigraph {\n  \"live/dev/vpc\"
          ;\n  \"live/dev/db\" ;\n  \"live/dev/ec2\" ;\n  \"live/dev/db\" -> \"live/dev/vpc\";\n
          \ \"live/dev/ec2\" -> \"live/dev/db\";\n  \"live/dev/ec2\" -> \"live/dev/vpc\";\n
          \ \"live/prod/vpc\" ;\n  \"live/prod/db\" ;\n  \"live/prod/ec2\" ;\n  \"live/prod/db\"
          -> \"live/prod/vpc\";\n  \"live/prod/ec2\" -> \"live/prod/db\";\n  \"live/prod/ec2\"
          -> \"live/prod/vpc\";\n}\n```\n\nThis was previously only possible using
          the [`dag graph`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/dag/graph/)
          command, but that command has been refactored to be an alias for the `list
          --format=dot --dependencies` command, to provide greater flexibility in
          how graphs are rendered in the DOT language. This includes integration with
          the experimental [Filter feature](https://terragrunt.gruntwork.io/docs/features/filter/).\n\nYou
          can learn more about this in the [`list` command documentation](https://terragrunt.gruntwork.io/docs/reference/cli/commands/list/#dot-format)\n\n####
          What's Changed\n\n- feat: Moving `dag graph` command to `list --format=dot`
          by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5013](https://redirect.github.com/gruntwork-io/terragrunt/pull/5013)\n-
          docs: Documenting `dot` format for the `list` command by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5042](https://redirect.github.com/gruntwork-io/terragrunt/pull/5042)\n-
          chore: CICD updates by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;5056](https://redirect.github.com/gruntwork-io/terragrunt/pull/5056)\n-
          chore: Disable experimental tests ignore in CI by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5021](https://redirect.github.com/gruntwork-io/terragrunt/pull/5021)\n-
          chore: Refactor `find` & `list` so that they use a single write instead
          of intermediate writes by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5027](https://redirect.github.com/gruntwork-io/terragrunt/pull/5027)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.93.1...v0.93.2>\n\n###
          [`v0.93.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.93.0...v0.93.1)\n\n####
          \U0001F3CE\uFE0F\_Performance Improvements\n\n- Reduced redundant `--auth-provider-cmd`
          invocations during `run-all`\n- This cuts down on external credential calls
          and lowers authentication overhead for large runs.\n- Updated the unit resolver
          to reuse the configuration parsed during discovery instead of re-parsing
          each `terragrunt.hcl`.\n- This reduces HCL parses and allocations, shortening
          execution time on complex stacks.\n\nIn our internal **\u201CRun all with
          Auth Provider\u201D** benchmark (10 runs, \\~10 ms on auth command), these
          changes reduced average runtime from \\~235 ms to \\~213 ms (about **9%
          faster**) compared to v0.93.0.\n\nBenchmarks of \"BenchmarkDependencyPairwiseOddDependsOnPrevEvenRandomWait\"
          release changes vs main\n\n<p align=\"center\">\n  <img\n    width=\"708\"\n
          \   height=\"380\"\n    alt=\"509178299-daaabc37-3834-40a4-95b3-19a2fb5f2c6d\"\n
          \   src=\"https://github.com/user-attachments/assets/677ed807-b030-4e31-8dd6-1be82fb378bb\"\n
          \ />\n</p>\n\n#### What's Changed\n* perf: unit resolver performance improvements
          by @&#8203;denis2[https://github.com/gruntwork-io/terragrunt/pull/5040](https://redirect.github.com/gruntwork-io/terragrunt/pull/5040)l/5040\n*
          feat: allow input validation with variable in source or version by @&#8203;ThisGuyCod[https://github.com/gruntwork-io/terragrunt/pull/5041](https://redirect.github.com/gruntwork-io/terragrunt/pull/5041)l/5041\n*
          perf: More useful benchmark for determining impact of `hcl fmt` optimization
          by @&#8203;yhakb[https://github.com/gruntwork-io/terragrunt/pull/5026](https://redirect.github.com/gruntwork-io/terragrunt/pull/5026)l/5026\n*
          chore: Add beta releases by @&#8203;Resonance15[https://github.com/gruntwork-io/terragrunt/pull/5052](https://redirect.github.com/gruntwork-io/terragrunt/pull/5052)l/5052\n\n####
          New Contributors\n* @&#8203;ThisGuyCodes made their first contributi[https://github.com/gruntwork-io/terragrunt/pull/5041](https://redirect.github.com/gruntwork-io/terragrunt/pull/5041)l/5041\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.93.0...v0.93.1>\n\n###
          [`v0.93.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.0)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.92.1...v0.93.0)\n\n####
          \U0001F6E0\uFE0F Breaking Changes\n\n##### Removal of deprecated HCL attributes\n\nThe
          `skip`, `retryable_errors`, `retry_max_attempts` and `retry_sleep_interval_sec`
          have all been removed from Terragrunt.\n\nThis is the final planned breaking
          change on the road to Terragrunt 1.0 related to removal of deprecated functionality.
          Breaking changes will be minimized before Terragrunt 1.0, but may still
          occur based on user feedback, or based on the need to stabilize parts of
          Terragrunt before 1.0.\n\nIf you are currently using the `skip` attribute,
          you'll want to adjust your usage to leverage the `exclude` block instead:\n\nBefore:\n\n```hcl\n\n#
          terragrunt.hcl\n\nskip = true\n```\n\nAfter:\n\n```hcl\n\n# terragrunt.hcl\n\nexclude
          {\n  if      = true\n  actions = [\"all\"]\n}\n```\n\nIf you are currently
          using the `retryable_errors` attribute, you'll want to adjust your usage
          to leverage the `errors` block instead:\n\nBefore:\n\n```hcl\n\n# terragrunt.hcl\n\nretryable_errors
          = [\n  \".*Error: transient network issue.*\",\n  \".*Error: timeout.*\"\n]\n\nretry_max_attempts
          \    = 3\nretry_sleep_interval_sec = 5\n```\n\nAfter:\n\n```hcl\n\n# terragrunt.hcl\n\nerrors
          {\n  retry \"transient_errors\" {\n    retryable_errors = [\n      \".*Error:
          transient network issue.*\",\n      \".*Error: timeout.*\"\n    ]\n    max_attempts
          = 3\n    sleep_interval_sec = 5\n  }\n}\n```\n\nRead the detailed [migration
          guide](https://terragrunt.gruntwork.io/docs/migrate/deprecated-attributes/)
          for more information.\n\n#### What's Changed\n\n- chore: removal of deprecated
          hcl attributes skip, retryable\\_errors by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;5033](https://redirect.github.com/gruntwork-io/terragrunt/pull/5033)\n-
          bug: empty paths handling in dependencies by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;5016](https://redirect.github.com/gruntwork-io/terragrunt/pull/5016)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.92.1...v0.93.0>\n\n###
          [`v0.92.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.92.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.92.0...v0.92.1)\n\n####
          \u2728 New Features\n\n##### `hcl fmt` supports `--parallelism` for controlling
          concurrency\n\nThe `hcl fmt` command now supports the `--parallelism` flag
          for controlling the number of concurrent files getting formatted. By default,
          the number of concurrent file formats will be determined by the number of
          CPU cores detected on the system running Terragrunt.\n\nSee [`hcl fmt` documentation](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/#parallelism)
          for more information.\n\n#### What's Changed\n\n- feat: Adding support for
          `--parallelism` to `hcl fmt` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5020](https://redirect.github.com/gruntwork-io/terragrunt/pull/5020)\n-
          docs: Documenting support for `--parallelism` flag in `hcl fmt` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5031](https://redirect.github.com/gruntwork-io/terragrunt/pull/5031)\n-
          build(deps): bump the js-dependencies group across 1 directory with 5 updates
          by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in
          [#&#8203;5025](https://redirect.github.com/gruntwork-io/terragrunt/pull/5025)\n-
          build(deps): bump actions/upload-artifact from 4 to 5 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]
          in [#&#8203;5024](https://redirect.github.com/gruntwork-io/terragrunt/pull/5024)\n-
          build(deps): bump actions/download-artifact from 4 to 6 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]
          in [#&#8203;5023](https://redirect.github.com/gruntwork-io/terragrunt/pull/5023)\n-
          chore: Refactoring Component by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5017](https://redirect.github.com/gruntwork-io/terragrunt/pull/5017)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.92.0...v0.92.1>\n\n###
          [`v0.92.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.92.0)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.5...v0.92.0)\n\n####
          \U0001F6E0\uFE0F Breaking Changes\n\n##### Internal `boilerplate` dependency
          upgraded to v0.10.1\n\nThe templating engine ([Boilerplate](https://redirect.github.com/gruntwork-io/boilerplate))
          used by the Terragrunt `catalog` and `scaffold` commands has been upgraded
          to `v0.10.1`.\n\nAs a consequence, the default behavior of scaffolding when
          using the `catalog` and `scaffold` commands has changed to allow for the
          use of Boilerplate hooks and shell commands (see [hooks](https://redirect.github.com/gruntwork-io/boilerplate?tab=readme-ov-file#hooks)
          and [helpers](https://redirect.github.com/gruntwork-io/boilerplate?tab=readme-ov-file#template-helpers)
          in Boilerplate documentation) by default.\n\nNote that Boilerplate will
          ask for permission interactively by default to run said hooks and shell
          commands, and that the interactive prompt will propagate to Terragrunt users.\n\ne.g.\n\n```bash\n$
          terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-shell-commands\n...\n[boilerplate]
          2025/10/24 13:44:56 Shell command details:\n[boilerplate] 2025/10/24 13:44:56
          \  Command: echo\n[boilerplate] 2025/10/24 13:44:56   Arguments: [-n SHELL_EXECUTED_VALUE_1]\n[boilerplate]
          2025/10/24 13:44:56   Working Directory: /var/folders/x3/j561187d7bn7j25xf6hs73wr0000gn/T/scaffold3587887181/.boilerplate\nExecute
          shell command? (y/a/n) :\n```\n\n```bash\n$ terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-hooks\n...\n[boilerplate]
          2025/10/24 13:48:27 Hook details:\n[boilerplate] 2025/10/24 13:48:27   Command:
          echo\n[boilerplate] 2025/10/24 13:48:27   Arguments: [BEFORE_HOOK_EXECUTED]\n[boilerplate]
          2025/10/24 13:48:27   Working Directory: /var/folders/x3/j561187d7bn7j25xf6hs73wr0000gn/T/scaffold4203613613/.boilerplate\nExecute
          hook? (y/a/n) :\n```\n\nWhen using the `--non-interactive` flag, Terragrunt
          will skip prompts and allow hooks and shell commands automatically by default.\n\n```bash\n$
          terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-hooks
          --non-interactive\n...\n[boilerplate] 2025/10/24 13:50:56 Executing hook
          (previously confirmed or all confirmed)\n[boilerplate] 2025/10/24 13:50:56
          Running command: echo BEFORE_HOOK_EXECUTED\nBEFORE_HOOK_EXECUTED\n...\n[boilerplate]
          2025/10/24 13:50:56 Executing hook (previously confirmed or all confirmed)\n[boilerplate]
          2025/10/24 13:50:56 Running command: echo AFTER_HOOK_EXECUTED\nAFTER_HOOK_EXECUTED\n```\n\nIf
          you would like to explicitly prevent this behavior, you can use the `--no-hooks`
          and `--no-shell` flags added to `catalog` and `scaffold` to explicitly prevent
          usage of these features:\n\n```bash\n$ terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-hooks
          --non-interactive --no-hooks --no-shell\n...\n[boilerplate] 2025/10/24 13:53:40
          Hooks are disabled, skipping 1 hook(s)\n...\n[boilerplate] 2025/10/24 13:53:40
          Hooks are disabled, skipping 1 hook(s)\n13:53:40.141 INFO   Running fmt
          on generated code .\n13:53:40.143 INFO   Scaffolding completed\n```\n\n```bash\n$
          terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-shell-commands
          --non-interactive --no-hooks --no-shell\n...\n[boilerplate] 2025/10/24 13:54:47
          Shell helpers are disabled. Will not execute shell command '[echo -n SHELL_EXECUTED_VALUE_1]'.
          Returning placeholder value 'replace-me'.\n[boilerplate] 2025/10/24 13:54:47
          Shell helpers are disabled. Will not execute shell command '[echo -n SHELL_EXECUTED_VALUE_2]'.
          Returning placeholder value 'replace-me'.\n[boilerplate] 2025/10/24 13:54:47
          Hooks are disabled, skipping 0 hook(s)\n13:54:47.356 INFO   Running fmt
          on generated code .\n13:54:47.356 INFO   ./terragrunt.hcl was updated\n13:54:47.356
          INFO   Scaffolding completed\n```\n\nYou can also set the `no_hooks` and
          `no_shell` attributes in your `catalog` config to have these set by default
          for all users of your project:\n\n```bash\n\n# root.hcl\ncatalog {\n  no_shell
          = true\n  no_hooks = true\n}\n```\n\n\u26A0\uFE0F Remember that IaC configurations
          are inherently powerful, and should not be trusted blindly. Make sure that
          you review and trust template sources when generating templates using Terragrunt.\n\n####
          \U0001F9EA\_Experiments Updated\n\n##### `filter-flag` experiment now supported
          in  `hcl` commands\n\nThe `--filter` flag is now supported in `hcl` commands
          ([`validate`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/validate/)
          and [`fmt`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/))
          (remember that you must use the [`filter-flag`](https://www.notion.so/v0-91-5-296d8759a6828016aaebe69000855672?pvs=21)
          experiment to try this).\n\ne.g.\n\n```bash\n\n# Filter by path with glob
          patterns\nterragrunt hcl validate --filter './prod/**'\n\n# Filter by name\nterragrunt
          hcl validate --filter 'app*'\n\n# Exclude specific configurations\nterragrunt
          hcl validate --filter '!./test/**'\n\n# Combine filters with intersection
          (refinement)\nterragrunt hcl validate --filter './prod/** | !name=legacy'\n\n#
          Multiple filters with union\nterragrunt hcl validate --filter 'app1' --filter
          'app2'\n```\n\nWhen using the `--filter` flag for `hcl fmt`, filtering applies
          to files instead of units / stacks. Only file path filters are supported
          for the `hcl fmt` command.\n\n```bash\n\n# Format a particular file\nterragrunt
          hcl fmt --filter './prod/app1/terragrunt.hcl'\n\n# Format files matching
          a glob\nterragrunt hcl fmt --filter './prod/**'\n\n# Exclude specific configurations\nterragrunt
          hcl fmt --filter '!./test/**'\n```\n\n#### \U0001F3CE\uFE0F\_Performance
          Improvements\n\n##### `hcl fmt` Performance Improved\n\nThe performance
          of the `hcl fmt` command has been improved substantially.\n\n<img width=\"1160\"
          height=\"609\" alt=\"Screenshot 2025-10-27 at 10 15 56\" src=\"https://github.com/user-attachments/assets/42c16140-53a9-4cbe-8f85-e6593295c323\"
          />\n\nFormatting files is now roughly twice as fast due to parallelization
          of file formatting, and optimizations used in file exclusion.\n\n#### What's
          Changed\n\n- feat: Adding support for `--filter` in `hcl` commands by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5006](https://redirect.github.com/gruntwork-io/terragrunt/pull/5006)\n-
          docs: Documenting the relationship between `--external` and `--dependencies`
          by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5014](https://redirect.github.com/gruntwork-io/terragrunt/pull/5014)\n-
          docs: Documenting support for `--filter` in `hcl` commands by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5010](https://redirect.github.com/gruntwork-io/terragrunt/pull/5010)\n-
          chore: Bumping boilerplate by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4805](https://redirect.github.com/gruntwork-io/terragrunt/pull/4805)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.5...v0.92.0>\n\n###
          [`v0.91.5`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.5)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.4...v0.91.5)\n\n####
          \U0001F9EA\_Experiments Updated\n\n##### **`filter-flag` updated with `run`
          support**\n\nThe `--filter` flag is now supported on the `run` command (remember
          that you must use the [`filter-flag`](https://www.notion.so/v0-91-5-296d8759a6828016aaebe69000855672?pvs=21)
          experiment to try this).\n\ne.g.\n\n```bash\n\n# Filter by path with glob
          patterns\nterragrunt run --all --filter 'prod/**' -- plan\n\n# Filter by
          name\nterragrunt run --all --filter 'app*' -- apply\n\n# Exclude specific
          configurations\nterragrunt run --all --filter '!./test/**' -- plan\n\n#
          Combine filters with intersection (refinement)\nterragrunt run --all --filter
          './prod/** | !name=legacy' -- apply\n\n# Multiple filters with union\nterragrunt
          run --all --filter 'app1' --filter 'app2' -- plan\n\n```\n\nFor more information,
          see the documentation on [Filtering Units](https://terragrunt-docs-git-docs-documenting-support-f-b0699d-gruntwork.vercel.app/docs/reference/cli/commands/run/#filtering-units).\n\nIf
          you give this feature a try, make sure to share your feedback on the [Filter
          Flag RFC](https://redirect.github.com/gruntwork-io/terragrunt/issues/4060)\n\n####
          What's Changed\n\n- feat: Adding support for `--filter` flag in `run` by
          [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4981](https://redirect.github.com/gruntwork-io/terragrunt/pull/4981)\n-
          docs: Documenting support for `--filter` in the `run` command by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5015](https://redirect.github.com/gruntwork-io/terragrunt/pull/5015)\n-
          chore: fixes for periodically failing tests by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;5011](https://redirect.github.com/gruntwork-io/terragrunt/pull/5011)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.4...v0.91.5>\n\n###
          [`v0.91.4`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.4)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.3...v0.91.4)\n\n####
          \U0001F9EA\_Experiments Updated\n\n##### **`filter-flag` updated with `reading=`
          support**\n\nThe `--filter` flag now supports usage of the `reading=` attribute
          to filter on components that read particular shared infrastructure configurations.\n\ne.g.\n\n```bash\nterragrunt
          find --filter 'reading=shared.hcl'\nterragrunt find --filter 'reading=common/*.hcl'
          # Globs supported!\nterragrunt find --filter 'reading=config/**' # Double-wildcard
          globs are required filtering on files nested in subdirectories.\nterragrunt
          find --filter 'reading=config/vars.tfvars'\n```\n\nThis behavior is similar
          to that provided by the [`--queue-include-units-reading`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/run/#queue-include-units-reading)
          flag, with additional support for globs, negation and filter chaining supported
          in the `--filter` flag more generally.\n\nFor more information, see the
          documentation on [Attribute-Based Filtering](https://terragrunt.gruntwork.io/docs/reference/cli/commands/find/#attribute-based-filtering).\n\nIf
          you give this feature a try, make sure to share your feedback on the [Filter
          Flag RFC](https://redirect.github.com/gruntwork-io/terragrunt/issues/4060)\n\n####
          What's Changed\n\n- feat: Adding support for `reading=` in `-filter` by
          [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5004](https://redirect.github.com/gruntwork-io/terragrunt/pull/5004)\n-
          docs: Documenting the new `reading` attribute by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5005](https://redirect.github.com/gruntwork-io/terragrunt/pull/5005)\n-
          docs: documenting how to exclude files from modules by [@&#8203;cebidhem](https://redirect.github.com/cebidhem)
          in [#&#8203;5008](https://redirect.github.com/gruntwork-io/terragrunt/pull/5008)\n-
          docs: Small fixes in the Provider Cache Server documentation by [@&#8203;RafaelWO](https://redirect.github.com/RafaelWO)
          in [#&#8203;4959](https://redirect.github.com/gruntwork-io/terragrunt/pull/4959)\n\n####
          New Contributors\n\n- [@&#8203;cebidhem](https://redirect.github.com/cebidhem)
          made their first contribution in [#&#8203;5008](https://redirect.github.com/gruntwork-io/terragrunt/pull/5008)\n-
          [@&#8203;RafaelWO](https://redirect.github.com/RafaelWO) made their first
          contribution in [#&#8203;4959](https://redirect.github.com/gruntwork-io/terragrunt/pull/4959)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.3...v0.91.4>\n\n###
          [`v0.91.3`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.3)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.2...v0.91.3)\n\n####
          \u2728 New Features\n\n##### `--reading` flag added to the `find` command\n\nThe
          `find` command now supports the `--reading` flag, which allows you to discover
          the shared configurations read by units and stacks when using the `--json`
          format.\n\n```bash\n$ terragrunt find --reading --json\n[\n  {\n    \"type\":
          \"unit\",\n    \"path\": \"aws-account-1\",\n    \"reading\": [\n      \"aws-data.yml\"\n
          \   ]\n  },\n  {\n    \"type\": \"unit\",\n    \"path\": \"aws-account-2\",\n
          \   \"reading\": [\n      \"aws-data.yml\"\n    ]\n  },\n  {\n    \"type\":
          \"unit\",\n    \"path\": \"gcp-project-1\",\n    \"reading\": [\n      \"gcp-data.hcl\"\n
          \   ]\n  }\n]\n```\n\nYou can use this information to drive custom logic
          in your workflows based on the changes related to particular files.\n\ne.g.\n\n```bash\n$
          terragrunt find --reading --json | jq '[.[] | select(.reading[]? | contains(\"aws-data.yml\"))|
          .path]'\n[\n  \"aws-account-1\",\n  \"aws-account-2\"\n]\n\n$ terragrunt
          find --reading --json | jq '[.[] | select(.reading[]? | contains(\"gcp-data.hcl\"))|
          .path]'\n[\n  \"gcp-project-1\"\n]\n```\n\nYou can learn more about the
          `--reading` flag in the [`find` documentation](https://terragrunt.gruntwork.io/docs/reference/cli/commands/find/#reading-files).\n\n####
          \U0001F41B Bug Fixes\n\n##### Empty stacks no longer throw errors\n\nPreviously,
          a bug in the logic used for making sure that users didn\u2019t accidentally
          run on empty stacks resulted in users getting a non-zero exit code when
          all units in a stack were excluded (e.g. via the `exclude` block).\n\nThat
          bug has been fixed.\n\n##### Dependency outputs can now be used in generate
          blocks\n\nPreviously, a bug in the way HCL parsing was done during discovery
          resulted in errors being thrown for users when dependency outputs were used
          in `generate` blocks. That error has since been resolved.\n\nThat bug has
          been fixed.\n\n#### What's Changed\n\n- feat: Adding reading support in
          `find` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5002](https://redirect.github.com/gruntwork-io/terragrunt/pull/5002)\n-
          fix: Removing filter enabled check on empty stacks by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4992](https://redirect.github.com/gruntwork-io/terragrunt/pull/4992)\n-
          fix: reference of dependency outputs in generate by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4994](https://redirect.github.com/gruntwork-io/terragrunt/pull/4994)\n-
          docs: Documenting new `-reading` flag for `find` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5003](https://redirect.github.com/gruntwork-io/terragrunt/pull/5003)\n-
          docs: Fixing --source-map explanation by [@&#8203;atheiman](https://redirect.github.com/atheiman)
          in [#&#8203;4997](https://redirect.github.com/gruntwork-io/terragrunt/pull/4997)\n-
          docs: Fixing `Filters` docs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4996](https://redirect.github.com/gruntwork-io/terragrunt/pull/4996)\n-
          chore: Tracking DAG nodes in components by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4998](https://redirect.github.com/gruntwork-io/terragrunt/pull/4998)\n-
          chore: Tracking reads in components by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5000](https://redirect.github.com/gruntwork-io/terragrunt/pull/5000)\n-
          chore: Updating language in discovery commands by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5001](https://redirect.github.com/gruntwork-io/terragrunt/pull/5001)\n-
          chore: Using a standard shell string parsing library instead of handling
          it ourselves by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in
          [#&#8203;4991](https://redirect.github.com/gruntwork-io/terragrunt/pull/4991)\n-
          build(deps): bump the js-dependencies group across 1 directory with 5 updates
          by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in
          [#&#8203;4993](https://redirect.github.com/gruntwork-io/terragrunt/pull/4993)\n-
          build(deps): bump vite from 6.3.6 to 6.4.1 in /docs-starlight by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]
          in [#&#8203;4999](https://redirect.github.com/gruntwork-io/terragrunt/pull/4999)\n\n####
          New Contributors\n\n- [@&#8203;atheiman](https://redirect.github.com/atheiman)
          made their first contribution in [#&#8203;4997](https://redirect.github.com/gruntwork-io/terragrunt/pull/4997)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.2...v0.91.3>\n\n###
          [`v0.91.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.2)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.1...v0.91.2)\n\n####
          \U0001F9EA Experiments Introduced\n\n##### `filter-flag` introduced\n\nA
          new experiment named [filter-flag](https://terragrunt.gruntwork.io/docs/reference/experiments/#filter-flag)
          has been introduced, allowing for experimental usage of the new `--filter`
          flag described in [RFC #&#8203;4060](https://redirect.github.com/gruntwork-io/terragrunt/issues/4060).
          The `filter-flag` experiment is incomplete, and minimal support for the
          `--filter` flag has been added exclusively to the [`find`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/find/)
          and [`list`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/list/)
          commands.\n\nThe filter flag allows for sophisticated querying of particular
          Terragrunt stacks and units in a way that is currently only possible using
          a combination of [`\u2014queue-`](https://terragrunt.gruntwork.io/docs/features/run-queue/#controlling-the-queue)
          prefixed flags.\n\nExample filter usage might look like the following:\n\n```bash\n$
          terragrunt find --filter './prod/** | name=web'\nprod/services/web\n```\n\n>
          \\[!IMPORTANT]\n>\n> While the `filter-flag` experiment is active, you will
          need to enable the `filter-flag` experiment for any command that uses the
          `filter-flag`. See [Controlling Experiment Mode](https://terragrunt-docs-ics3biiml-gruntwork.vercel.app/docs/reference/experiments/#controlling-experiment-mode)
          for more details.\n>\n> e.g.\n>\n> ```bash\n> terragrunt find --experiment
          filter-flag --filter './prod/** | name=web'\n> ```\n\nYou can learn more
          about filters, including documentation on the syntax and examples of each
          type of filter in the [dedicated feature documentation for filters](https://terragrunt.gruntwork.io/docs/features/filter/).\n\n####
          What's Changed\n\n- feat: Introduce `filter-flag` experiment by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4969](https://redirect.github.com/gruntwork-io/terragrunt/pull/4969)\n-
          chore: Adding checkbox for reproduction by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4980](https://redirect.github.com/gruntwork-io/terragrunt/pull/4980)\n-
          docs: Use special dark/light mode for Terragrunt logos by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4975](https://redirect.github.com/gruntwork-io/terragrunt/pull/4975)\n-
          docs: Fixes overflow issue on the right sidebar by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4972](https://redirect.github.com/gruntwork-io/terragrunt/pull/4972)\n-
          docs: Documenting `filter-flag` experiment by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4973](https://redirect.github.com/gruntwork-io/terragrunt/pull/4973)\n-
          docs: Fixing Flag Card icons by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4974](https://redirect.github.com/gruntwork-io/terragrunt/pull/4974)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.1...v0.91.2>\n\n###
          [`v0.91.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.0...v0.91.1)\n\n####
          \U0001F9F9 Chores\n\n##### Updated dependencies\n\nUpgraded multiple Golang
          dependencies to the latest stable versions:\n\n- Updated cloud.google.com/go/storage
          to v1.57.0\n- Updated github.com/aws/aws-sdk-go-v2 to v1.39.2\n- Updated
          github.com/getsops/sops/v3 to v3.11.0\n- Updated github.com/gofrs/flock
          to v0.13.0\n- Updated github.com/gruntwork-io/terratest to v0.51.0\n- Updated
          github.com/hashicorp/go-getter to v1.8.2\n- Updated golang.org/x/mod to
          v0.29.0\n- Updated golang.org/x/oauth2 to v0.32.0\n- Updated golang.org/x/sys
          to v0.37.0\n- Updated golang.org/x/term to v0.36.0\n- Updated golang.org/x/text
          to v0.30.0\n- Updated google.golang.org/api to v0.252.0\n- Updated google.golang.org/grpc
          to v1.76.0\n- Updated google.golang.org/protobuf to v1.36.10\n\n#### What's
          Changed\n\n- chore: Undo Starlight patch by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4964](https://redirect.github.com/gruntwork-io/terragrunt/pull/4964)\n-
          chore: Bump Bun dependencies by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4965](https://redirect.github.com/gruntwork-io/terragrunt/pull/4965)\n-
          chore: Refactor out `component` package by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4963](https://redirect.github.com/gruntwork-io/terragrunt/pull/4963)\n-
          feat: Adding `filter` package by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4958](https://redirect.github.com/gruntwork-io/terragrunt/pull/4958)\n-
          chore: multiple dependencies update by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4968](https://redirect.github.com/gruntwork-io/terragrunt/pull/4968)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.0...v0.91.1>\n\n###
          [`v0.91.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.0)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.90.2...v0.91.0)\n\nRemoval
          of behavior where inputs are read from dependencies\n\n### \U0001F6E0\uFE0F
          Breaking Changes\n\n##### **Removal of behavior where inputs are read from
          dependencies**\n\nTerragrunt no longer exposes **dependency inputs** as
          accessible values.\n\nThis change improves performance and simplifies dependency
          handling by removing a feature that significantly slowed configuration parsing
          due to a requirement for recursive parsing of dependencies of dependencies
          for every dependent.\n\nIf your configurations currently access dependency
          inputs like this:\n\n```hcl\ndependency \"foo\" {\n  config_path = \"../foo\"\n}\n\ninputs
          = {\n  my_input = dependency.foo.inputs.an_input_from_foo\n}\n\n```\n\nYou\u2019ll
          need to update them to reference **outputs** instead:\n\n```hcl\ndependency
          \"foo\" {\n  config_path = \"../foo\"\n}\n\ninputs = {\n  my_input = dependency.foo.outputs.an_output_from_foo\n}\n\n```\n\nAccessing
          outputs remains the supported and recommended way to share data between
          modules.\n\n#### What's Changed\n\n- feat: removal of behavior where inputs
          are read from dependencies by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4960](https://redirect.github.com/gruntwork-io/terragrunt/pull/4960)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.90.2...v0.91.0>\n\n###
          [`v0.90.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.90.2)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.90.1...v0.90.2)\n\n####
          \u2728 New Features\n\n##### Added `--terragrunt-no-cache` flag for `run_cmd`\n\nThe
          `run_cmd` command now supports a new flag, `--terragrunt-no-cache`, which
          disables caching of command execution output.\n\nThis option is useful when
          you want to ensure that each command run produces fresh results, especially
          in dynamic environments or when working with frequently changing external
          data.\n\n#### What's Changed\n\n- feat: add `--terragrunt-no-cache` parameter
          for `run_cmd` by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4951](https://redirect.github.com/gruntwork-io/terragrunt/pull/4951)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.90.1...v0.90.2>\n\n###
          [`v0.90.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.90.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.90.0...v0.90.1)\n\n####
          \u2728 New Features\n\n##### `hcl fmt` now supports `--queue` flags\n\nThe
          `hcl fmt` command now supports `--queue-` prefixed flags (e.g. [`--queue-exclude-dir`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/#queue-exclude-dir)).\n\n####
          \U0001F41B Bug Fixes\n\n##### Discovery in `run` command discovers hidden
          directories\n\nWhen discovering units for the `run` command, Terragrunt
          will now search through (most) hidden directories.\n\nIt will still avoid
          performing discovery in the following hidden directories:\n\n- `.git`\n-
          `.terraform`\n- `.terragrunt-cache`\n\nTo manually force or suppress discovery,
          use [`--queue-include-dir`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/#queue-exclude-dir)
          and [`--queue-exclude-dir`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/#queue-exclude-dir)
          respectively.\n\n##### `--queue-ignore-errors` no longer breaks DAG resolution\n\nA
          bug in the implementation of [`--queue-ignore-errors`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/run/#queue-ignore-errors)
          resulted in the flag also preventing the proper resolution of the [Directed
          Acyclic Graph (DAG)](https://terragrunt.gruntwork.io/docs/getting-started/terminology/#directed-acyclic-graph-dag)
          when suppressing errors.\n\nThis has been fixed.\n\n##### `--tf-path` respected
          through dependencies\n\nA bug in the precedence resolution of the [`terraform_binary`
          HCL attribute](https://terragrunt.gruntwork.io/docs/reference/hcl/attributes/#terraform_binary)
          and the [`--tf-path` flag](https://terragrunt.gruntwork.io/docs/reference/cli/commands/run/#tf-path)
          resulted in the default value of `terraform_binary` taking affect (`tofu`
          if both `tofu` and `terraform` are installed) when `terraform_binary` was
          not specified in dependencies.\n\nThis bug has been resolved, and the `--tf-path`
          flag will be respected in dependencies as well.\n\n##### Spurious errors
          resolved in `read_terragrunt_config()`\n\nA bug caused the [`read_terragrunt_config()`](https://terragrunt.gruntwork.io/docs/reference/hcl/functions/#read_terragrunt_config)
          HCL function to return spurious errors when used in a configuration parsed
          during the discovery phase of configuration resolution of a run.\n\nThis
          has been fixed.\n\n#### What's Changed\n\n- feat: Adding queue flags to
          `hcl fmt` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4950](https://redirect.github.com/gruntwork-io/terragrunt/pull/4950)\n-
          fix: discovery of hidden directories by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4945](https://redirect.github.com/gruntwork-io/terragrunt/pull/4945)\n-
          fix: Fixing `--queue-ignore-errors` resulting in ignored DAG order by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4953](https://redirect.github.com/gruntwork-io/terragrunt/pull/4953)\n-
          fix: Ensure `--tf-path` is used in dependencies by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4955](https://redirect.github.com/gruntwork-io/terragrunt/pull/4955)\n-
          fix: Prevent parse errors when using `read_terragrunt_config()` during discovery
          by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4956](https://redirect.github.com/gruntwork-io/terragrunt/pull/4956)\n-
          docs: Updating docs for `--out-dir` and `--json-out-dir` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4957](https://redirect.github.com/gruntwork-io/terragrunt/pull/4957)\n-
          docs: Pipelines won't bite landing page by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4948](https://redirect.github.com/gruntwork-io/terragrunt/pull/4948)\n-
          docs: Fixing form by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4954](https://redirect.github.com/gruntwork-io/terragrunt/pull/4954)\n-
          chore: failing tests fixes by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4944](https://redirect.github.com/gruntwork-io/terragrunt/pull/4944)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.90.0...v0.90.1>\n\n###
          [`v0.90.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.90.0)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.4...v0.90.0)\n\nRemoval
          of deprecated commands\n\nThis is the next step on the road to Terragrunt
          1.0, completing the Terragrunt CLI Redesign. Read the [CLI Redesign migration
          guide](https://terragrunt.gruntwork.io/docs/migrate/cli-redesign/) for guidance
          on adapting to these breaking changes.\n\nWe anticipate no further breaking
          changes to the CLI prior to the release of Terragrunt 1.0, where the CLI
          will remain stable without breaking changes until at least Terragrunt 2.0.\n\nFor
          a full list of deprecated features that will be removed prior to the release
          of Terragrunt 1.0, see the [removal schedule](https://redirect.github.com/gruntwork-io/terragrunt/issues/3535).\n\n###
          \U0001F6E0\uFE0F Breaking Changes\n\n##### Removal of Deprecated Commands\n\nThe
          following deprecated CLI commands have been removed to streamline the command
          line API ahead of 1.0.\n\nUse the new commands introduced during the CLI
          redesign that replace them:\n\n- `terragrunt terragrunt-info` \u2192 `terragrunt
          info print`\n- `terragrunt hclfmt` \u2192 `terragrunt hcl fmt`\n- `terragrunt
          hclvalidate` \u2192 `terragrunt hcl validate`\n- `terragrunt validate-inputs`
          \u2192 `terragrunt hcl validate --inputs`\n- `terragrunt render-json` \u2192
          `terragrunt render --json -w`\n- `terragrunt graph-dependencies` \u2192
          `terragrunt dag graph`\n- `terragrunt output-module-groups` \u2192 `terragrunt
          find --dag --json`\n\n#### What's Changed\n\n- chore: removal of deprecated
          commands by [@&#8203;denis256](https://redirect.github.com/denis256) in
          [#&#8203;4918](https://redirect.github.com/gruntwork-io/terragrunt/pull/4918)\n-
          chore: Removal of output-module-groups cli command by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4937](https://redirect.github.com/gruntwork-io/terragrunt/pull/4937)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.4...v0.90.0>\n\n###
          [`v0.89.4`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.4)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.3...v0.89.4)\n\n####
          \U0001F41B\_Bug Fixes\n\n##### Collection of exit code for `-detailed-exitcode`
          behavior in `run --all`\n\nImproved run-all plan -detailed-exitcode aggregation
          to correctly return 2 when any unit has drift, even if another unit hits
          a retryable error.\n\n#### What's Changed\n\n- fix(run-all): corrected -detailed-exitcode
          aggregation  by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4932](https://redirect.github.com/gruntwork-io/terragrunt/pull/4932)\n-
          docs: stack generate documentation update by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4930](https://redirect.github.com/gruntwork-io/terragrunt/pull/4930)\n-
          docs: Form updates by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4911](https://redirect.github.com/gruntwork-io/terragrunt/pull/4911)\n-
          docs: Fixing up signup form by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4933](https://redirect.github.com/gruntwork-io/terragrunt/pull/4933)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.3...v0.89.4>\n\n###
          [`v0.89.3`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.3)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.2...v0.89.3)\n\n####
          What's Changed\n\n- fix: Added missing flags to the `hcl` command by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4927](https://redirect.github.com/gruntwork-io/terragrunt/pull/4927)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.2...v0.89.3>\n\n###
          [`v0.89.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.2)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.1...v0.89.2)\n\n####
          What's Changed\n\n- fix: Fixing Terralith to Terragrunt integration test
          by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4909](https://redirect.github.com/gruntwork-io/terragrunt/pull/4909)\n-
          fix: Fixing external dependency resolution by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4926](https://redirect.github.com/gruntwork-io/terragrunt/pull/4926)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.1...v0.89.2>\n\n###
          [`v0.89.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.0...v0.89.1)\n\n####
          What's Changed\n\n- fix: Fixed bug where discovery warned that outputs were
          mocked. by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4923](https://redirect.github.com/gruntwork-io/terragrunt/pull/4923)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.0...v0.89.1>\n\n###
          [`v0.89.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.0)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.88.1...v0.89.0)\n\nSeveral
          experimental features have been made generally available.\n\n#### \U0001F6E0\uFE0F
          Breaking Changes\n\n##### Runner-pool\n\nTerragrunt now supports the Runner
          Pool concurrency model, replacing the traditional group-based concurrency
          model with a dynamic scheduler by default.\n\nInstead of waiting for groups
          of units that block downstream units to complete their runs, the Runner
          Pool executes each unit as soon as its dependencies (or dependents for destroys)
          are resolved. This improves efficiency, reduces bottlenecks, and limits
          the impact of individual failures on the run of the entire queue.\n\n#####
          \u2728New Features\n\n- Dynamically schedules Units as soon as dependencies
          (or dependents) are satisfied\n- Improves throughput for large stacks\n-
          Provides better fault-isolation for failed units\n\n<p align=\"center\">\n\n<img
          width=\"789\" height=\"480\" alt=\"image\" src=\"https://github.com/user-attachments/assets/7d88e437-2d5f-4477-86eb-0733b7062f0d\"
          />\n\n</p>\n\n##### Report\n\nThe experimental Report feature is now stable
          and enabled by default.\n\nEvery Terragrunt run will now emit a short summary
          at the end of the run that looks like the following by default:\n\n```bash\n$
          terragrunt run --all plan\n\n# Omitted for brevity...\n\n\u276F\u276F Run
          Summary  3 units  62ms\n   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n
          \  Succeeded    3\n\n```\n\nThis summary will give a high-level overview
          of the run results for units in a given Terragrunt run.\n\nYou can optionally
          request a CSV or JSON report of runs as well, giving you detailed insights
          as to the performance of each run using the `--report` flag:\n\n```bash\nterragrunt
          run --all plan --report-schema-file report.schema.csv\n```\n\n```csv\nName,Started,Ended,Result,Reason,Cause\nfirst-exclude,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,excluded,exclude
          block,\nsecond-exclude,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,excluded,exclude
          block,\nfirst-failure,2025-06-05T16:28:41-04:00,2025-06-05T16:28:42-04:00,failed,run
          error,\nfirst-success,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,succeeded,,\nsecond-failure,2025-06-05T16:28:41-04:00,2025-06-05T16:28:42-04:00,failed,run
          error,\nsecond-success,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,succeeded,,\nsecond-early-exit,2025-06-05T16:28:42-04:00,2025-06-05T16:28:42-04:00,early
          exit,run error,\nfirst-early-exit,2025-06-05T16:28:42-04:00,2025-06-05T16:28:42-04:00,early
          exit,run error,\n```\n\n```bash\nterragrunt run --all plan --report-schema-file
          report.schema.json\n```\n\n```json\n[\n  {\n    \"Name\": \"first-exclude\",\n
          \   \"Started\": \"2025-06-05T16:28:41-04:00\",\n    \"Ended\": \"2025-06-05T16:28:41-04:00\",\n
          \   \"Result\": \"excluded\",\n    \"Reason\": \"exclude block\"\n  },\n
          \ {\n    \"Name\": \"first-success\",\n    \"Started\": \"2025-06-05T16:28:41-04:00\",\n
          \   \"Ended\": \"2025-06-05T16:28:41-04:00\",\n    \"Result\": \"succeeded\"\n
          \ }\n]\n\n```\n\n##### \u2728New Features\n\n- Generates detailed run reports
          (CSV and JSON formats supported)\n- Displays run summaries directly in the
          CLI output\n- Allows disabling summaries if desired\n\nTo learn more about
          the Run Report feature, read the dedicated guide on Run Reports [here](https://terragrunt.gruntwork.io/docs/features/run-report/).\n\n#####
          \U0001F527 Migration Guide\n\nNo action is required\n\nTo disable summary
          output explicitly, use `--disable-report-summary`:\n\n```bash\nterragrunt
          run --all plan --disable-report-summary\n```\n\n##### Auto OpenTofu Provider
          Cache Directory\n\nTerragrunt now automatically configures OpenTofu\u2019s
          **native provider caching mechanism** by default when running with OpenTofu
          > = 1.10.\n\nNote that if you are using Terraform, you will not be able
          to take advantage of this new feature.\n\nThis feature is only possible
          in OpenTofu due to the hard work and coordination with the OpenTofu team
          to ensure that concurrent access to the provider cache directory is safe
          for all OpenTofu users, regardless of whether they use Terragrunt.\n\n<p
          align=\"center\">\n<img width=\"912\" height=\"486\" alt=\"Screenshot 2025-06-25
          at 12 38 05\u202FPM\" src=\"https://github.com/user-attachments/assets/214cff8d-4fbb-4e70-aa96-c026e91038d7\"
          />\n</p>\n\n##### \u2728New Features\n\n- Automatically sets the `TF_PLUGIN_CACHE_DIR`
          environment variable\n- Uses OpenTofu\u2019s native provider cache instead
          of Terragrunt\u2019s internal cache server\n- Provides improved concurrency
          safety in multi-runner and CI environments\n\n##### \U0001F527 Migration
          Guide\n\nNo action is required if you\u2019re running OpenTofu > = 1.10
          \u2014 provider caching will be configured automatically.\n\nTo disable
          this behavior, use the `--no-auto-provider-cache-dir` flag:\n\n```bash\nterragrunt
          run --all apply --no-auto-provider-cache-dir\n```\n\n##### \u2764\uFE0F
          Special Thanks\n\nThis feature merely automatically activates a feature
          that was introduced in OpenTofu 1.10 by the hard work of [@&#8203;cam72cam](https://redirect.github.com/cam72cam)
          on the OpenTofu team.\n\nThe OpenTofu project takes community feedback seriously
          (including the maintainers of this project), and introduced the ability
          to concurrently access a shared provider cache directory as a feature in
          OpenTofu to make *all users* of OpenTofu better off. Maintainers of Terragrunt
          will continue to collaborate with the OpenTofu team to ensure that using
          Terragrunt with OpenTofu is the easiest way to guarantee the best experience
          managing IaC at scale.\n\n#### What's Changed\n\n- chore: Marked as completed
          runner-pool, reports and provider cache by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4900](https://redirect.github.com/gruntwork-io/terragrunt/pull/4900)\n-
          fix: Properly sets discovery context so that `plan -destroy` and `apply
          -destroy` work right by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4887](https://redirect.github.com/gruntwork-io/terragrunt/pull/4887)\n-
          docs: Implement view plans button by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4890](https://redirect.github.com/gruntwork-io/terragrunt/pull/4890)\n-
          docs: Visual updates to form by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4902](https://redirect.github.com/gruntwork-io/terragrunt/pull/4902)\n-
          docs: Fix docs flag name by [@&#8203;rubensf](https://redirect.github.com/rubensf)
          in [#&#8203;4908](https://redirect.github.com/gruntwork-io/terragrunt/pull/4908)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.88.1...v0.89.0>\n\n###
          [`v0.88.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.88.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.88.0...v0.88.1)\n\n####
          What's Changed\n\n- feat: Use better parsing for `--auth-provider-cmd` by
          [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4881](https://redirect.github.com/gruntwork-io/terragrunt/pull/4881)\n-
          fix: Fixing race condition for `TestTerragruntExcludesFile` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4809](https://redirect.github.com/gruntwork-io/terragrunt/pull/4809)\n-
          fix: Fixing report flags by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4899](https://redirect.github.com/gruntwork-io/terragrunt/pull/4899)\n-
          fix: Fixing `.tf` vs `.tofu` extension parity by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4794](https://redirect.github.com/gruntwork-io/terragrunt/pull/4794)\n-
          chore: Add data.tf to iam directory in refactoring guide by [@&#8203;vit100-trader](https://redirect.github.com/vit100-trader)
          in [#&#8203;4888](https://redirect.github.com/gruntwork-io/terragrunt/pull/4888)\n-
          chore: Refactoring GitHub client into dedicated package by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4879](https://redirect.github.com/gruntwork-io/terragrunt/pull/4879)\n-
          build(deps): bump the js-dependencies group across 1 directory with 7 updates
          by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in
          [#&#8203;4878](https://redirect.github.com/gruntwork-io/terragrunt/pull/4878)\n-
          docs: Update 01-quick-start.mdx by [@&#8203;vit100](https://redirect.github.com/vit100)
          in [#&#8203;4883](https://redirect.github.com/gruntwork-io/terragrunt/pull/4883)\n-
          docs: CI for Terralith to Terragrunt Guide by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4811](https://redirect.github.com/gruntwork-io/terragrunt/pull/4811)\n-
          docs: Update OG images by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4889](https://redirect.github.com/gruntwork-io/terragrunt/pull/4889)\n\n####
          New Contributors\n\n- [@&#8203;vit100](https://redirect.github.com/vit100)
          made their first contribution in [#&#8203;4883](https://redirect.github.com/gruntwork-io/terragrunt/pull/4883)\n-
          [@&#8203;vit100-trader](https://redirect.github.com/vit100-trader) made
          their first contribution in [#&#8203;4888](https://redirect.github.com/gruntwork-io/terragrunt/pull/4888)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.88.0...v0.88.1>\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time
          (no schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
          **Automerge**: Disabled by config. Please merge this manually once you are
          satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
          tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR
          and you won't be reminded about this update again.\n\n---\n\n - [ ] <!--
          rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis
          PR was generated by [Mend Renovate](https://mend.io/renovate/). View the
          [repository job log](https://developer.mend.io/github/osism/testbed).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzEuOSIsInVwZGF0ZWRJblZlciI6IjQxLjE1OS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
        change_url: https://github.com/osism/testbed/pull/2777
        commit_id: cc00b91f1e59f2c97d4b224d8bd3e2a12f4e9332
        patchset: cc00b91f1e59f2c97d4b224d8bd3e2a12f4e9332
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          name: osism/testbed
          short_name: testbed
        src_dir: src/github.com/osism/testbed
        topic: null
      buildset: 252d69c4fa2d4d3497e571adca357892
      buildset_refs:
      - branch: main
        change: '2777'
        change_message: "chore(deps): update dependency gruntwork-io/terragrunt to
          v0.93.3\n\nThis PR contains the following updates:\n\n| Package | Update
          | Change |\n|---|---|---|\n| [gruntwork-io/terragrunt](https://redirect.github.com/gruntwork-io/terragrunt)
          | minor | `v0.88.0` -> `v0.93.3` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>gruntwork-io/terragrunt
          (gruntwork-io/terragrunt)</summary>\n\n### [`v0.93.3`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.3)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.93.2...v0.93.3)\n\n####
          \U0001F41B Bug Fixes\n\n##### `hcl validate --inputs` regression on `validation`
          blocks resolved\n\nA bug introduced in `v0.93.1` preventing `hcl validate
          --inputs` from succeeding on OpenTofu/Terraform modules with variables containing
          `validation` blocks. This was caused by an error in the update to OpenTofu/Terraform
          `.tf` file parsing by Terragrunt in the `hcl validate` command.\n\nThat
          bug has been resolved.\n\n#### What's Changed\n\n- fix: Allow validation
          blocks in inputs by [@&#8203;ThisGuyCodes](https://redirect.github.com/ThisGuyCodes)
          in [#&#8203;5063](https://redirect.github.com/gruntwork-io/terragrunt/pull/5063)\n-
          chore: Updating pin to `v0.93.2` for remote references by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5058](https://redirect.github.com/gruntwork-io/terragrunt/pull/5058)\n-
          build(deps): bump tar from 7.5.1 to 7.5.2 in /docs-starlight by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]
          in [#&#8203;5057](https://redirect.github.com/gruntwork-io/terragrunt/pull/5057)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.93.2...v0.93.3>\n\n###
          [`v0.93.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.2)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.93.1...v0.93.2)\n\n####
          \u2728 New Features\n\n##### The `list` command now supports the `dot` fomat\n\nThe
          `list` command can now render its output in the Graphviz [DOT language](https://en.wikipedia.org/wiki/DOT_\\(graph_description_language\\)):\n\n```bash\n$
          terragrunt list --format=dot --dependencies\ndigraph {\n  \"live/dev/vpc\"
          ;\n  \"live/dev/db\" ;\n  \"live/dev/ec2\" ;\n  \"live/dev/db\" -> \"live/dev/vpc\";\n
          \ \"live/dev/ec2\" -> \"live/dev/db\";\n  \"live/dev/ec2\" -> \"live/dev/vpc\";\n
          \ \"live/prod/vpc\" ;\n  \"live/prod/db\" ;\n  \"live/prod/ec2\" ;\n  \"live/prod/db\"
          -> \"live/prod/vpc\";\n  \"live/prod/ec2\" -> \"live/prod/db\";\n  \"live/prod/ec2\"
          -> \"live/prod/vpc\";\n}\n```\n\nThis was previously only possible using
          the [`dag graph`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/dag/graph/)
          command, but that command has been refactored to be an alias for the `list
          --format=dot --dependencies` command, to provide greater flexibility in
          how graphs are rendered in the DOT language. This includes integration with
          the experimental [Filter feature](https://terragrunt.gruntwork.io/docs/features/filter/).\n\nYou
          can learn more about this in the [`list` command documentation](https://terragrunt.gruntwork.io/docs/reference/cli/commands/list/#dot-format)\n\n####
          What's Changed\n\n- feat: Moving `dag graph` command to `list --format=dot`
          by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5013](https://redirect.github.com/gruntwork-io/terragrunt/pull/5013)\n-
          docs: Documenting `dot` format for the `list` command by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5042](https://redirect.github.com/gruntwork-io/terragrunt/pull/5042)\n-
          chore: CICD updates by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;5056](https://redirect.github.com/gruntwork-io/terragrunt/pull/5056)\n-
          chore: Disable experimental tests ignore in CI by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5021](https://redirect.github.com/gruntwork-io/terragrunt/pull/5021)\n-
          chore: Refactor `find` & `list` so that they use a single write instead
          of intermediate writes by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5027](https://redirect.github.com/gruntwork-io/terragrunt/pull/5027)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.93.1...v0.93.2>\n\n###
          [`v0.93.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.93.0...v0.93.1)\n\n####
          \U0001F3CE\uFE0F\_Performance Improvements\n\n- Reduced redundant `--auth-provider-cmd`
          invocations during `run-all`\n- This cuts down on external credential calls
          and lowers authentication overhead for large runs.\n- Updated the unit resolver
          to reuse the configuration parsed during discovery instead of re-parsing
          each `terragrunt.hcl`.\n- This reduces HCL parses and allocations, shortening
          execution time on complex stacks.\n\nIn our internal **\u201CRun all with
          Auth Provider\u201D** benchmark (10 runs, \\~10 ms on auth command), these
          changes reduced average runtime from \\~235 ms to \\~213 ms (about **9%
          faster**) compared to v0.93.0.\n\nBenchmarks of \"BenchmarkDependencyPairwiseOddDependsOnPrevEvenRandomWait\"
          release changes vs main\n\n<p align=\"center\">\n  <img\n    width=\"708\"\n
          \   height=\"380\"\n    alt=\"509178299-daaabc37-3834-40a4-95b3-19a2fb5f2c6d\"\n
          \   src=\"https://github.com/user-attachments/assets/677ed807-b030-4e31-8dd6-1be82fb378bb\"\n
          \ />\n</p>\n\n#### What's Changed\n* perf: unit resolver performance improvements
          by @&#8203;denis2[https://github.com/gruntwork-io/terragrunt/pull/5040](https://redirect.github.com/gruntwork-io/terragrunt/pull/5040)l/5040\n*
          feat: allow input validation with variable in source or version by @&#8203;ThisGuyCod[https://github.com/gruntwork-io/terragrunt/pull/5041](https://redirect.github.com/gruntwork-io/terragrunt/pull/5041)l/5041\n*
          perf: More useful benchmark for determining impact of `hcl fmt` optimization
          by @&#8203;yhakb[https://github.com/gruntwork-io/terragrunt/pull/5026](https://redirect.github.com/gruntwork-io/terragrunt/pull/5026)l/5026\n*
          chore: Add beta releases by @&#8203;Resonance15[https://github.com/gruntwork-io/terragrunt/pull/5052](https://redirect.github.com/gruntwork-io/terragrunt/pull/5052)l/5052\n\n####
          New Contributors\n* @&#8203;ThisGuyCodes made their first contributi[https://github.com/gruntwork-io/terragrunt/pull/5041](https://redirect.github.com/gruntwork-io/terragrunt/pull/5041)l/5041\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.93.0...v0.93.1>\n\n###
          [`v0.93.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.0)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.92.1...v0.93.0)\n\n####
          \U0001F6E0\uFE0F Breaking Changes\n\n##### Removal of deprecated HCL attributes\n\nThe
          `skip`, `retryable_errors`, `retry_max_attempts` and `retry_sleep_interval_sec`
          have all been removed from Terragrunt.\n\nThis is the final planned breaking
          change on the road to Terragrunt 1.0 related to removal of deprecated functionality.
          Breaking changes will be minimized before Terragrunt 1.0, but may still
          occur based on user feedback, or based on the need to stabilize parts of
          Terragrunt before 1.0.\n\nIf you are currently using the `skip` attribute,
          you'll want to adjust your usage to leverage the `exclude` block instead:\n\nBefore:\n\n```hcl\n\n#
          terragrunt.hcl\n\nskip = true\n```\n\nAfter:\n\n```hcl\n\n# terragrunt.hcl\n\nexclude
          {\n  if      = true\n  actions = [\"all\"]\n}\n```\n\nIf you are currently
          using the `retryable_errors` attribute, you'll want to adjust your usage
          to leverage the `errors` block instead:\n\nBefore:\n\n```hcl\n\n# terragrunt.hcl\n\nretryable_errors
          = [\n  \".*Error: transient network issue.*\",\n  \".*Error: timeout.*\"\n]\n\nretry_max_attempts
          \    = 3\nretry_sleep_interval_sec = 5\n```\n\nAfter:\n\n```hcl\n\n# terragrunt.hcl\n\nerrors
          {\n  retry \"transient_errors\" {\n    retryable_errors = [\n      \".*Error:
          transient network issue.*\",\n      \".*Error: timeout.*\"\n    ]\n    max_attempts
          = 3\n    sleep_interval_sec = 5\n  }\n}\n```\n\nRead the detailed [migration
          guide](https://terragrunt.gruntwork.io/docs/migrate/deprecated-attributes/)
          for more information.\n\n#### What's Changed\n\n- chore: removal of deprecated
          hcl attributes skip, retryable\\_errors by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;5033](https://redirect.github.com/gruntwork-io/terragrunt/pull/5033)\n-
          bug: empty paths handling in dependencies by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;5016](https://redirect.github.com/gruntwork-io/terragrunt/pull/5016)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.92.1...v0.93.0>\n\n###
          [`v0.92.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.92.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.92.0...v0.92.1)\n\n####
          \u2728 New Features\n\n##### `hcl fmt` supports `--parallelism` for controlling
          concurrency\n\nThe `hcl fmt` command now supports the `--parallelism` flag
          for controlling the number of concurrent files getting formatted. By default,
          the number of concurrent file formats will be determined by the number of
          CPU cores detected on the system running Terragrunt.\n\nSee [`hcl fmt` documentation](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/#parallelism)
          for more information.\n\n#### What's Changed\n\n- feat: Adding support for
          `--parallelism` to `hcl fmt` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5020](https://redirect.github.com/gruntwork-io/terragrunt/pull/5020)\n-
          docs: Documenting support for `--parallelism` flag in `hcl fmt` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5031](https://redirect.github.com/gruntwork-io/terragrunt/pull/5031)\n-
          build(deps): bump the js-dependencies group across 1 directory with 5 updates
          by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in
          [#&#8203;5025](https://redirect.github.com/gruntwork-io/terragrunt/pull/5025)\n-
          build(deps): bump actions/upload-artifact from 4 to 5 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]
          in [#&#8203;5024](https://redirect.github.com/gruntwork-io/terragrunt/pull/5024)\n-
          build(deps): bump actions/download-artifact from 4 to 6 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]
          in [#&#8203;5023](https://redirect.github.com/gruntwork-io/terragrunt/pull/5023)\n-
          chore: Refactoring Component by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5017](https://redirect.github.com/gruntwork-io/terragrunt/pull/5017)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.92.0...v0.92.1>\n\n###
          [`v0.92.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.92.0)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.5...v0.92.0)\n\n####
          \U0001F6E0\uFE0F Breaking Changes\n\n##### Internal `boilerplate` dependency
          upgraded to v0.10.1\n\nThe templating engine ([Boilerplate](https://redirect.github.com/gruntwork-io/boilerplate))
          used by the Terragrunt `catalog` and `scaffold` commands has been upgraded
          to `v0.10.1`.\n\nAs a consequence, the default behavior of scaffolding when
          using the `catalog` and `scaffold` commands has changed to allow for the
          use of Boilerplate hooks and shell commands (see [hooks](https://redirect.github.com/gruntwork-io/boilerplate?tab=readme-ov-file#hooks)
          and [helpers](https://redirect.github.com/gruntwork-io/boilerplate?tab=readme-ov-file#template-helpers)
          in Boilerplate documentation) by default.\n\nNote that Boilerplate will
          ask for permission interactively by default to run said hooks and shell
          commands, and that the interactive prompt will propagate to Terragrunt users.\n\ne.g.\n\n```bash\n$
          terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-shell-commands\n...\n[boilerplate]
          2025/10/24 13:44:56 Shell command details:\n[boilerplate] 2025/10/24 13:44:56
          \  Command: echo\n[boilerplate] 2025/10/24 13:44:56   Arguments: [-n SHELL_EXECUTED_VALUE_1]\n[boilerplate]
          2025/10/24 13:44:56   Working Directory: /var/folders/x3/j561187d7bn7j25xf6hs73wr0000gn/T/scaffold3587887181/.boilerplate\nExecute
          shell command? (y/a/n) :\n```\n\n```bash\n$ terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-hooks\n...\n[boilerplate]
          2025/10/24 13:48:27 Hook details:\n[boilerplate] 2025/10/24 13:48:27   Command:
          echo\n[boilerplate] 2025/10/24 13:48:27   Arguments: [BEFORE_HOOK_EXECUTED]\n[boilerplate]
          2025/10/24 13:48:27   Working Directory: /var/folders/x3/j561187d7bn7j25xf6hs73wr0000gn/T/scaffold4203613613/.boilerplate\nExecute
          hook? (y/a/n) :\n```\n\nWhen using the `--non-interactive` flag, Terragrunt
          will skip prompts and allow hooks and shell commands automatically by default.\n\n```bash\n$
          terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-hooks
          --non-interactive\n...\n[boilerplate] 2025/10/24 13:50:56 Executing hook
          (previously confirmed or all confirmed)\n[boilerplate] 2025/10/24 13:50:56
          Running command: echo BEFORE_HOOK_EXECUTED\nBEFORE_HOOK_EXECUTED\n...\n[boilerplate]
          2025/10/24 13:50:56 Executing hook (previously confirmed or all confirmed)\n[boilerplate]
          2025/10/24 13:50:56 Running command: echo AFTER_HOOK_EXECUTED\nAFTER_HOOK_EXECUTED\n```\n\nIf
          you would like to explicitly prevent this behavior, you can use the `--no-hooks`
          and `--no-shell` flags added to `catalog` and `scaffold` to explicitly prevent
          usage of these features:\n\n```bash\n$ terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-hooks
          --non-interactive --no-hooks --no-shell\n...\n[boilerplate] 2025/10/24 13:53:40
          Hooks are disabled, skipping 1 hook(s)\n...\n[boilerplate] 2025/10/24 13:53:40
          Hooks are disabled, skipping 1 hook(s)\n13:53:40.141 INFO   Running fmt
          on generated code .\n13:53:40.143 INFO   Scaffolding completed\n```\n\n```bash\n$
          terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-shell-commands
          --non-interactive --no-hooks --no-shell\n...\n[boilerplate] 2025/10/24 13:54:47
          Shell helpers are disabled. Will not execute shell command '[echo -n SHELL_EXECUTED_VALUE_1]'.
          Returning placeholder value 'replace-me'.\n[boilerplate] 2025/10/24 13:54:47
          Shell helpers are disabled. Will not execute shell command '[echo -n SHELL_EXECUTED_VALUE_2]'.
          Returning placeholder value 'replace-me'.\n[boilerplate] 2025/10/24 13:54:47
          Hooks are disabled, skipping 0 hook(s)\n13:54:47.356 INFO   Running fmt
          on generated code .\n13:54:47.356 INFO   ./terragrunt.hcl was updated\n13:54:47.356
          INFO   Scaffolding completed\n```\n\nYou can also set the `no_hooks` and
          `no_shell` attributes in your `catalog` config to have these set by default
          for all users of your project:\n\n```bash\n\n# root.hcl\ncatalog {\n  no_shell
          = true\n  no_hooks = true\n}\n```\n\n\u26A0\uFE0F Remember that IaC configurations
          are inherently powerful, and should not be trusted blindly. Make sure that
          you review and trust template sources when generating templates using Terragrunt.\n\n####
          \U0001F9EA\_Experiments Updated\n\n##### `filter-flag` experiment now supported
          in  `hcl` commands\n\nThe `--filter` flag is now supported in `hcl` commands
          ([`validate`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/validate/)
          and [`fmt`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/))
          (remember that you must use the [`filter-flag`](https://www.notion.so/v0-91-5-296d8759a6828016aaebe69000855672?pvs=21)
          experiment to try this).\n\ne.g.\n\n```bash\n\n# Filter by path with glob
          patterns\nterragrunt hcl validate --filter './prod/**'\n\n# Filter by name\nterragrunt
          hcl validate --filter 'app*'\n\n# Exclude specific configurations\nterragrunt
          hcl validate --filter '!./test/**'\n\n# Combine filters with intersection
          (refinement)\nterragrunt hcl validate --filter './prod/** | !name=legacy'\n\n#
          Multiple filters with union\nterragrunt hcl validate --filter 'app1' --filter
          'app2'\n```\n\nWhen using the `--filter` flag for `hcl fmt`, filtering applies
          to files instead of units / stacks. Only file path filters are supported
          for the `hcl fmt` command.\n\n```bash\n\n# Format a particular file\nterragrunt
          hcl fmt --filter './prod/app1/terragrunt.hcl'\n\n# Format files matching
          a glob\nterragrunt hcl fmt --filter './prod/**'\n\n# Exclude specific configurations\nterragrunt
          hcl fmt --filter '!./test/**'\n```\n\n#### \U0001F3CE\uFE0F\_Performance
          Improvements\n\n##### `hcl fmt` Performance Improved\n\nThe performance
          of the `hcl fmt` command has been improved substantially.\n\n<img width=\"1160\"
          height=\"609\" alt=\"Screenshot 2025-10-27 at 10 15 56\" src=\"https://github.com/user-attachments/assets/42c16140-53a9-4cbe-8f85-e6593295c323\"
          />\n\nFormatting files is now roughly twice as fast due to parallelization
          of file formatting, and optimizations used in file exclusion.\n\n#### What's
          Changed\n\n- feat: Adding support for `--filter` in `hcl` commands by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5006](https://redirect.github.com/gruntwork-io/terragrunt/pull/5006)\n-
          docs: Documenting the relationship between `--external` and `--dependencies`
          by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5014](https://redirect.github.com/gruntwork-io/terragrunt/pull/5014)\n-
          docs: Documenting support for `--filter` in `hcl` commands by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5010](https://redirect.github.com/gruntwork-io/terragrunt/pull/5010)\n-
          chore: Bumping boilerplate by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4805](https://redirect.github.com/gruntwork-io/terragrunt/pull/4805)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.5...v0.92.0>\n\n###
          [`v0.91.5`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.5)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.4...v0.91.5)\n\n####
          \U0001F9EA\_Experiments Updated\n\n##### **`filter-flag` updated with `run`
          support**\n\nThe `--filter` flag is now supported on the `run` command (remember
          that you must use the [`filter-flag`](https://www.notion.so/v0-91-5-296d8759a6828016aaebe69000855672?pvs=21)
          experiment to try this).\n\ne.g.\n\n```bash\n\n# Filter by path with glob
          patterns\nterragrunt run --all --filter 'prod/**' -- plan\n\n# Filter by
          name\nterragrunt run --all --filter 'app*' -- apply\n\n# Exclude specific
          configurations\nterragrunt run --all --filter '!./test/**' -- plan\n\n#
          Combine filters with intersection (refinement)\nterragrunt run --all --filter
          './prod/** | !name=legacy' -- apply\n\n# Multiple filters with union\nterragrunt
          run --all --filter 'app1' --filter 'app2' -- plan\n\n```\n\nFor more information,
          see the documentation on [Filtering Units](https://terragrunt-docs-git-docs-documenting-support-f-b0699d-gruntwork.vercel.app/docs/reference/cli/commands/run/#filtering-units).\n\nIf
          you give this feature a try, make sure to share your feedback on the [Filter
          Flag RFC](https://redirect.github.com/gruntwork-io/terragrunt/issues/4060)\n\n####
          What's Changed\n\n- feat: Adding support for `--filter` flag in `run` by
          [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4981](https://redirect.github.com/gruntwork-io/terragrunt/pull/4981)\n-
          docs: Documenting support for `--filter` in the `run` command by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5015](https://redirect.github.com/gruntwork-io/terragrunt/pull/5015)\n-
          chore: fixes for periodically failing tests by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;5011](https://redirect.github.com/gruntwork-io/terragrunt/pull/5011)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.4...v0.91.5>\n\n###
          [`v0.91.4`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.4)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.3...v0.91.4)\n\n####
          \U0001F9EA\_Experiments Updated\n\n##### **`filter-flag` updated with `reading=`
          support**\n\nThe `--filter` flag now supports usage of the `reading=` attribute
          to filter on components that read particular shared infrastructure configurations.\n\ne.g.\n\n```bash\nterragrunt
          find --filter 'reading=shared.hcl'\nterragrunt find --filter 'reading=common/*.hcl'
          # Globs supported!\nterragrunt find --filter 'reading=config/**' # Double-wildcard
          globs are required filtering on files nested in subdirectories.\nterragrunt
          find --filter 'reading=config/vars.tfvars'\n```\n\nThis behavior is similar
          to that provided by the [`--queue-include-units-reading`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/run/#queue-include-units-reading)
          flag, with additional support for globs, negation and filter chaining supported
          in the `--filter` flag more generally.\n\nFor more information, see the
          documentation on [Attribute-Based Filtering](https://terragrunt.gruntwork.io/docs/reference/cli/commands/find/#attribute-based-filtering).\n\nIf
          you give this feature a try, make sure to share your feedback on the [Filter
          Flag RFC](https://redirect.github.com/gruntwork-io/terragrunt/issues/4060)\n\n####
          What's Changed\n\n- feat: Adding support for `reading=` in `-filter` by
          [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5004](https://redirect.github.com/gruntwork-io/terragrunt/pull/5004)\n-
          docs: Documenting the new `reading` attribute by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5005](https://redirect.github.com/gruntwork-io/terragrunt/pull/5005)\n-
          docs: documenting how to exclude files from modules by [@&#8203;cebidhem](https://redirect.github.com/cebidhem)
          in [#&#8203;5008](https://redirect.github.com/gruntwork-io/terragrunt/pull/5008)\n-
          docs: Small fixes in the Provider Cache Server documentation by [@&#8203;RafaelWO](https://redirect.github.com/RafaelWO)
          in [#&#8203;4959](https://redirect.github.com/gruntwork-io/terragrunt/pull/4959)\n\n####
          New Contributors\n\n- [@&#8203;cebidhem](https://redirect.github.com/cebidhem)
          made their first contribution in [#&#8203;5008](https://redirect.github.com/gruntwork-io/terragrunt/pull/5008)\n-
          [@&#8203;RafaelWO](https://redirect.github.com/RafaelWO) made their first
          contribution in [#&#8203;4959](https://redirect.github.com/gruntwork-io/terragrunt/pull/4959)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.3...v0.91.4>\n\n###
          [`v0.91.3`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.3)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.2...v0.91.3)\n\n####
          \u2728 New Features\n\n##### `--reading` flag added to the `find` command\n\nThe
          `find` command now supports the `--reading` flag, which allows you to discover
          the shared configurations read by units and stacks when using the `--json`
          format.\n\n```bash\n$ terragrunt find --reading --json\n[\n  {\n    \"type\":
          \"unit\",\n    \"path\": \"aws-account-1\",\n    \"reading\": [\n      \"aws-data.yml\"\n
          \   ]\n  },\n  {\n    \"type\": \"unit\",\n    \"path\": \"aws-account-2\",\n
          \   \"reading\": [\n      \"aws-data.yml\"\n    ]\n  },\n  {\n    \"type\":
          \"unit\",\n    \"path\": \"gcp-project-1\",\n    \"reading\": [\n      \"gcp-data.hcl\"\n
          \   ]\n  }\n]\n```\n\nYou can use this information to drive custom logic
          in your workflows based on the changes related to particular files.\n\ne.g.\n\n```bash\n$
          terragrunt find --reading --json | jq '[.[] | select(.reading[]? | contains(\"aws-data.yml\"))|
          .path]'\n[\n  \"aws-account-1\",\n  \"aws-account-2\"\n]\n\n$ terragrunt
          find --reading --json | jq '[.[] | select(.reading[]? | contains(\"gcp-data.hcl\"))|
          .path]'\n[\n  \"gcp-project-1\"\n]\n```\n\nYou can learn more about the
          `--reading` flag in the [`find` documentation](https://terragrunt.gruntwork.io/docs/reference/cli/commands/find/#reading-files).\n\n####
          \U0001F41B Bug Fixes\n\n##### Empty stacks no longer throw errors\n\nPreviously,
          a bug in the logic used for making sure that users didn\u2019t accidentally
          run on empty stacks resulted in users getting a non-zero exit code when
          all units in a stack were excluded (e.g. via the `exclude` block).\n\nThat
          bug has been fixed.\n\n##### Dependency outputs can now be used in generate
          blocks\n\nPreviously, a bug in the way HCL parsing was done during discovery
          resulted in errors being thrown for users when dependency outputs were used
          in `generate` blocks. That error has since been resolved.\n\nThat bug has
          been fixed.\n\n#### What's Changed\n\n- feat: Adding reading support in
          `find` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5002](https://redirect.github.com/gruntwork-io/terragrunt/pull/5002)\n-
          fix: Removing filter enabled check on empty stacks by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4992](https://redirect.github.com/gruntwork-io/terragrunt/pull/4992)\n-
          fix: reference of dependency outputs in generate by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4994](https://redirect.github.com/gruntwork-io/terragrunt/pull/4994)\n-
          docs: Documenting new `-reading` flag for `find` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5003](https://redirect.github.com/gruntwork-io/terragrunt/pull/5003)\n-
          docs: Fixing --source-map explanation by [@&#8203;atheiman](https://redirect.github.com/atheiman)
          in [#&#8203;4997](https://redirect.github.com/gruntwork-io/terragrunt/pull/4997)\n-
          docs: Fixing `Filters` docs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4996](https://redirect.github.com/gruntwork-io/terragrunt/pull/4996)\n-
          chore: Tracking DAG nodes in components by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4998](https://redirect.github.com/gruntwork-io/terragrunt/pull/4998)\n-
          chore: Tracking reads in components by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5000](https://redirect.github.com/gruntwork-io/terragrunt/pull/5000)\n-
          chore: Updating language in discovery commands by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5001](https://redirect.github.com/gruntwork-io/terragrunt/pull/5001)\n-
          chore: Using a standard shell string parsing library instead of handling
          it ourselves by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in
          [#&#8203;4991](https://redirect.github.com/gruntwork-io/terragrunt/pull/4991)\n-
          build(deps): bump the js-dependencies group across 1 directory with 5 updates
          by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in
          [#&#8203;4993](https://redirect.github.com/gruntwork-io/terragrunt/pull/4993)\n-
          build(deps): bump vite from 6.3.6 to 6.4.1 in /docs-starlight by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]
          in [#&#8203;4999](https://redirect.github.com/gruntwork-io/terragrunt/pull/4999)\n\n####
          New Contributors\n\n- [@&#8203;atheiman](https://redirect.github.com/atheiman)
          made their first contribution in [#&#8203;4997](https://redirect.github.com/gruntwork-io/terragrunt/pull/4997)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.2...v0.91.3>\n\n###
          [`v0.91.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.2)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.1...v0.91.2)\n\n####
          \U0001F9EA Experiments Introduced\n\n##### `filter-flag` introduced\n\nA
          new experiment named [filter-flag](https://terragrunt.gruntwork.io/docs/reference/experiments/#filter-flag)
          has been introduced, allowing for experimental usage of the new `--filter`
          flag described in [RFC #&#8203;4060](https://redirect.github.com/gruntwork-io/terragrunt/issues/4060).
          The `filter-flag` experiment is incomplete, and minimal support for the
          `--filter` flag has been added exclusively to the [`find`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/find/)
          and [`list`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/list/)
          commands.\n\nThe filter flag allows for sophisticated querying of particular
          Terragrunt stacks and units in a way that is currently only possible using
          a combination of [`\u2014queue-`](https://terragrunt.gruntwork.io/docs/features/run-queue/#controlling-the-queue)
          prefixed flags.\n\nExample filter usage might look like the following:\n\n```bash\n$
          terragrunt find --filter './prod/** | name=web'\nprod/services/web\n```\n\n>
          \\[!IMPORTANT]\n>\n> While the `filter-flag` experiment is active, you will
          need to enable the `filter-flag` experiment for any command that uses the
          `filter-flag`. See [Controlling Experiment Mode](https://terragrunt-docs-ics3biiml-gruntwork.vercel.app/docs/reference/experiments/#controlling-experiment-mode)
          for more details.\n>\n> e.g.\n>\n> ```bash\n> terragrunt find --experiment
          filter-flag --filter './prod/** | name=web'\n> ```\n\nYou can learn more
          about filters, including documentation on the syntax and examples of each
          type of filter in the [dedicated feature documentation for filters](https://terragrunt.gruntwork.io/docs/features/filter/).\n\n####
          What's Changed\n\n- feat: Introduce `filter-flag` experiment by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4969](https://redirect.github.com/gruntwork-io/terragrunt/pull/4969)\n-
          chore: Adding checkbox for reproduction by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4980](https://redirect.github.com/gruntwork-io/terragrunt/pull/4980)\n-
          docs: Use special dark/light mode for Terragrunt logos by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4975](https://redirect.github.com/gruntwork-io/terragrunt/pull/4975)\n-
          docs: Fixes overflow issue on the right sidebar by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4972](https://redirect.github.com/gruntwork-io/terragrunt/pull/4972)\n-
          docs: Documenting `filter-flag` experiment by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4973](https://redirect.github.com/gruntwork-io/terragrunt/pull/4973)\n-
          docs: Fixing Flag Card icons by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4974](https://redirect.github.com/gruntwork-io/terragrunt/pull/4974)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.1...v0.91.2>\n\n###
          [`v0.91.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.0...v0.91.1)\n\n####
          \U0001F9F9 Chores\n\n##### Updated dependencies\n\nUpgraded multiple Golang
          dependencies to the latest stable versions:\n\n- Updated cloud.google.com/go/storage
          to v1.57.0\n- Updated github.com/aws/aws-sdk-go-v2 to v1.39.2\n- Updated
          github.com/getsops/sops/v3 to v3.11.0\n- Updated github.com/gofrs/flock
          to v0.13.0\n- Updated github.com/gruntwork-io/terratest to v0.51.0\n- Updated
          github.com/hashicorp/go-getter to v1.8.2\n- Updated golang.org/x/mod to
          v0.29.0\n- Updated golang.org/x/oauth2 to v0.32.0\n- Updated golang.org/x/sys
          to v0.37.0\n- Updated golang.org/x/term to v0.36.0\n- Updated golang.org/x/text
          to v0.30.0\n- Updated google.golang.org/api to v0.252.0\n- Updated google.golang.org/grpc
          to v1.76.0\n- Updated google.golang.org/protobuf to v1.36.10\n\n#### What's
          Changed\n\n- chore: Undo Starlight patch by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4964](https://redirect.github.com/gruntwork-io/terragrunt/pull/4964)\n-
          chore: Bump Bun dependencies by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4965](https://redirect.github.com/gruntwork-io/terragrunt/pull/4965)\n-
          chore: Refactor out `component` package by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4963](https://redirect.github.com/gruntwork-io/terragrunt/pull/4963)\n-
          feat: Adding `filter` package by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4958](https://redirect.github.com/gruntwork-io/terragrunt/pull/4958)\n-
          chore: multiple dependencies update by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4968](https://redirect.github.com/gruntwork-io/terragrunt/pull/4968)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.0...v0.91.1>\n\n###
          [`v0.91.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.0)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.90.2...v0.91.0)\n\nRemoval
          of behavior where inputs are read from dependencies\n\n### \U0001F6E0\uFE0F
          Breaking Changes\n\n##### **Removal of behavior where inputs are read from
          dependencies**\n\nTerragrunt no longer exposes **dependency inputs** as
          accessible values.\n\nThis change improves performance and simplifies dependency
          handling by removing a feature that significantly slowed configuration parsing
          due to a requirement for recursive parsing of dependencies of dependencies
          for every dependent.\n\nIf your configurations currently access dependency
          inputs like this:\n\n```hcl\ndependency \"foo\" {\n  config_path = \"../foo\"\n}\n\ninputs
          = {\n  my_input = dependency.foo.inputs.an_input_from_foo\n}\n\n```\n\nYou\u2019ll
          need to update them to reference **outputs** instead:\n\n```hcl\ndependency
          \"foo\" {\n  config_path = \"../foo\"\n}\n\ninputs = {\n  my_input = dependency.foo.outputs.an_output_from_foo\n}\n\n```\n\nAccessing
          outputs remains the supported and recommended way to share data between
          modules.\n\n#### What's Changed\n\n- feat: removal of behavior where inputs
          are read from dependencies by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4960](https://redirect.github.com/gruntwork-io/terragrunt/pull/4960)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.90.2...v0.91.0>\n\n###
          [`v0.90.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.90.2)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.90.1...v0.90.2)\n\n####
          \u2728 New Features\n\n##### Added `--terragrunt-no-cache` flag for `run_cmd`\n\nThe
          `run_cmd` command now supports a new flag, `--terragrunt-no-cache`, which
          disables caching of command execution output.\n\nThis option is useful when
          you want to ensure that each command run produces fresh results, especially
          in dynamic environments or when working with frequently changing external
          data.\n\n#### What's Changed\n\n- feat: add `--terragrunt-no-cache` parameter
          for `run_cmd` by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4951](https://redirect.github.com/gruntwork-io/terragrunt/pull/4951)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.90.1...v0.90.2>\n\n###
          [`v0.90.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.90.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.90.0...v0.90.1)\n\n####
          \u2728 New Features\n\n##### `hcl fmt` now supports `--queue` flags\n\nThe
          `hcl fmt` command now supports `--queue-` prefixed flags (e.g. [`--queue-exclude-dir`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/#queue-exclude-dir)).\n\n####
          \U0001F41B Bug Fixes\n\n##### Discovery in `run` command discovers hidden
          directories\n\nWhen discovering units for the `run` command, Terragrunt
          will now search through (most) hidden directories.\n\nIt will still avoid
          performing discovery in the following hidden directories:\n\n- `.git`\n-
          `.terraform`\n- `.terragrunt-cache`\n\nTo manually force or suppress discovery,
          use [`--queue-include-dir`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/#queue-exclude-dir)
          and [`--queue-exclude-dir`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/#queue-exclude-dir)
          respectively.\n\n##### `--queue-ignore-errors` no longer breaks DAG resolution\n\nA
          bug in the implementation of [`--queue-ignore-errors`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/run/#queue-ignore-errors)
          resulted in the flag also preventing the proper resolution of the [Directed
          Acyclic Graph (DAG)](https://terragrunt.gruntwork.io/docs/getting-started/terminology/#directed-acyclic-graph-dag)
          when suppressing errors.\n\nThis has been fixed.\n\n##### `--tf-path` respected
          through dependencies\n\nA bug in the precedence resolution of the [`terraform_binary`
          HCL attribute](https://terragrunt.gruntwork.io/docs/reference/hcl/attributes/#terraform_binary)
          and the [`--tf-path` flag](https://terragrunt.gruntwork.io/docs/reference/cli/commands/run/#tf-path)
          resulted in the default value of `terraform_binary` taking affect (`tofu`
          if both `tofu` and `terraform` are installed) when `terraform_binary` was
          not specified in dependencies.\n\nThis bug has been resolved, and the `--tf-path`
          flag will be respected in dependencies as well.\n\n##### Spurious errors
          resolved in `read_terragrunt_config()`\n\nA bug caused the [`read_terragrunt_config()`](https://terragrunt.gruntwork.io/docs/reference/hcl/functions/#read_terragrunt_config)
          HCL function to return spurious errors when used in a configuration parsed
          during the discovery phase of configuration resolution of a run.\n\nThis
          has been fixed.\n\n#### What's Changed\n\n- feat: Adding queue flags to
          `hcl fmt` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4950](https://redirect.github.com/gruntwork-io/terragrunt/pull/4950)\n-
          fix: discovery of hidden directories by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4945](https://redirect.github.com/gruntwork-io/terragrunt/pull/4945)\n-
          fix: Fixing `--queue-ignore-errors` resulting in ignored DAG order by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4953](https://redirect.github.com/gruntwork-io/terragrunt/pull/4953)\n-
          fix: Ensure `--tf-path` is used in dependencies by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4955](https://redirect.github.com/gruntwork-io/terragrunt/pull/4955)\n-
          fix: Prevent parse errors when using `read_terragrunt_config()` during discovery
          by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4956](https://redirect.github.com/gruntwork-io/terragrunt/pull/4956)\n-
          docs: Updating docs for `--out-dir` and `--json-out-dir` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4957](https://redirect.github.com/gruntwork-io/terragrunt/pull/4957)\n-
          docs: Pipelines won't bite landing page by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4948](https://redirect.github.com/gruntwork-io/terragrunt/pull/4948)\n-
          docs: Fixing form by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4954](https://redirect.github.com/gruntwork-io/terragrunt/pull/4954)\n-
          chore: failing tests fixes by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4944](https://redirect.github.com/gruntwork-io/terragrunt/pull/4944)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.90.0...v0.90.1>\n\n###
          [`v0.90.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.90.0)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.4...v0.90.0)\n\nRemoval
          of deprecated commands\n\nThis is the next step on the road to Terragrunt
          1.0, completing the Terragrunt CLI Redesign. Read the [CLI Redesign migration
          guide](https://terragrunt.gruntwork.io/docs/migrate/cli-redesign/) for guidance
          on adapting to these breaking changes.\n\nWe anticipate no further breaking
          changes to the CLI prior to the release of Terragrunt 1.0, where the CLI
          will remain stable without breaking changes until at least Terragrunt 2.0.\n\nFor
          a full list of deprecated features that will be removed prior to the release
          of Terragrunt 1.0, see the [removal schedule](https://redirect.github.com/gruntwork-io/terragrunt/issues/3535).\n\n###
          \U0001F6E0\uFE0F Breaking Changes\n\n##### Removal of Deprecated Commands\n\nThe
          following deprecated CLI commands have been removed to streamline the command
          line API ahead of 1.0.\n\nUse the new commands introduced during the CLI
          redesign that replace them:\n\n- `terragrunt terragrunt-info` \u2192 `terragrunt
          info print`\n- `terragrunt hclfmt` \u2192 `terragrunt hcl fmt`\n- `terragrunt
          hclvalidate` \u2192 `terragrunt hcl validate`\n- `terragrunt validate-inputs`
          \u2192 `terragrunt hcl validate --inputs`\n- `terragrunt render-json` \u2192
          `terragrunt render --json -w`\n- `terragrunt graph-dependencies` \u2192
          `terragrunt dag graph`\n- `terragrunt output-module-groups` \u2192 `terragrunt
          find --dag --json`\n\n#### What's Changed\n\n- chore: removal of deprecated
          commands by [@&#8203;denis256](https://redirect.github.com/denis256) in
          [#&#8203;4918](https://redirect.github.com/gruntwork-io/terragrunt/pull/4918)\n-
          chore: Removal of output-module-groups cli command by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4937](https://redirect.github.com/gruntwork-io/terragrunt/pull/4937)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.4...v0.90.0>\n\n###
          [`v0.89.4`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.4)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.3...v0.89.4)\n\n####
          \U0001F41B\_Bug Fixes\n\n##### Collection of exit code for `-detailed-exitcode`
          behavior in `run --all`\n\nImproved run-all plan -detailed-exitcode aggregation
          to correctly return 2 when any unit has drift, even if another unit hits
          a retryable error.\n\n#### What's Changed\n\n- fix(run-all): corrected -detailed-exitcode
          aggregation  by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4932](https://redirect.github.com/gruntwork-io/terragrunt/pull/4932)\n-
          docs: stack generate documentation update by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4930](https://redirect.github.com/gruntwork-io/terragrunt/pull/4930)\n-
          docs: Form updates by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4911](https://redirect.github.com/gruntwork-io/terragrunt/pull/4911)\n-
          docs: Fixing up signup form by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4933](https://redirect.github.com/gruntwork-io/terragrunt/pull/4933)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.3...v0.89.4>\n\n###
          [`v0.89.3`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.3)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.2...v0.89.3)\n\n####
          What's Changed\n\n- fix: Added missing flags to the `hcl` command by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4927](https://redirect.github.com/gruntwork-io/terragrunt/pull/4927)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.2...v0.89.3>\n\n###
          [`v0.89.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.2)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.1...v0.89.2)\n\n####
          What's Changed\n\n- fix: Fixing Terralith to Terragrunt integration test
          by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4909](https://redirect.github.com/gruntwork-io/terragrunt/pull/4909)\n-
          fix: Fixing external dependency resolution by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4926](https://redirect.github.com/gruntwork-io/terragrunt/pull/4926)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.1...v0.89.2>\n\n###
          [`v0.89.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.0...v0.89.1)\n\n####
          What's Changed\n\n- fix: Fixed bug where discovery warned that outputs were
          mocked. by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4923](https://redirect.github.com/gruntwork-io/terragrunt/pull/4923)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.0...v0.89.1>\n\n###
          [`v0.89.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.0)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.88.1...v0.89.0)\n\nSeveral
          experimental features have been made generally available.\n\n#### \U0001F6E0\uFE0F
          Breaking Changes\n\n##### Runner-pool\n\nTerragrunt now supports the Runner
          Pool concurrency model, replacing the traditional group-based concurrency
          model with a dynamic scheduler by default.\n\nInstead of waiting for groups
          of units that block downstream units to complete their runs, the Runner
          Pool executes each unit as soon as its dependencies (or dependents for destroys)
          are resolved. This improves efficiency, reduces bottlenecks, and limits
          the impact of individual failures on the run of the entire queue.\n\n#####
          \u2728New Features\n\n- Dynamically schedules Units as soon as dependencies
          (or dependents) are satisfied\n- Improves throughput for large stacks\n-
          Provides better fault-isolation for failed units\n\n<p align=\"center\">\n\n<img
          width=\"789\" height=\"480\" alt=\"image\" src=\"https://github.com/user-attachments/assets/7d88e437-2d5f-4477-86eb-0733b7062f0d\"
          />\n\n</p>\n\n##### Report\n\nThe experimental Report feature is now stable
          and enabled by default.\n\nEvery Terragrunt run will now emit a short summary
          at the end of the run that looks like the following by default:\n\n```bash\n$
          terragrunt run --all plan\n\n# Omitted for brevity...\n\n\u276F\u276F Run
          Summary  3 units  62ms\n   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n
          \  Succeeded    3\n\n```\n\nThis summary will give a high-level overview
          of the run results for units in a given Terragrunt run.\n\nYou can optionally
          request a CSV or JSON report of runs as well, giving you detailed insights
          as to the performance of each run using the `--report` flag:\n\n```bash\nterragrunt
          run --all plan --report-schema-file report.schema.csv\n```\n\n```csv\nName,Started,Ended,Result,Reason,Cause\nfirst-exclude,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,excluded,exclude
          block,\nsecond-exclude,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,excluded,exclude
          block,\nfirst-failure,2025-06-05T16:28:41-04:00,2025-06-05T16:28:42-04:00,failed,run
          error,\nfirst-success,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,succeeded,,\nsecond-failure,2025-06-05T16:28:41-04:00,2025-06-05T16:28:42-04:00,failed,run
          error,\nsecond-success,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,succeeded,,\nsecond-early-exit,2025-06-05T16:28:42-04:00,2025-06-05T16:28:42-04:00,early
          exit,run error,\nfirst-early-exit,2025-06-05T16:28:42-04:00,2025-06-05T16:28:42-04:00,early
          exit,run error,\n```\n\n```bash\nterragrunt run --all plan --report-schema-file
          report.schema.json\n```\n\n```json\n[\n  {\n    \"Name\": \"first-exclude\",\n
          \   \"Started\": \"2025-06-05T16:28:41-04:00\",\n    \"Ended\": \"2025-06-05T16:28:41-04:00\",\n
          \   \"Result\": \"excluded\",\n    \"Reason\": \"exclude block\"\n  },\n
          \ {\n    \"Name\": \"first-success\",\n    \"Started\": \"2025-06-05T16:28:41-04:00\",\n
          \   \"Ended\": \"2025-06-05T16:28:41-04:00\",\n    \"Result\": \"succeeded\"\n
          \ }\n]\n\n```\n\n##### \u2728New Features\n\n- Generates detailed run reports
          (CSV and JSON formats supported)\n- Displays run summaries directly in the
          CLI output\n- Allows disabling summaries if desired\n\nTo learn more about
          the Run Report feature, read the dedicated guide on Run Reports [here](https://terragrunt.gruntwork.io/docs/features/run-report/).\n\n#####
          \U0001F527 Migration Guide\n\nNo action is required\n\nTo disable summary
          output explicitly, use `--disable-report-summary`:\n\n```bash\nterragrunt
          run --all plan --disable-report-summary\n```\n\n##### Auto OpenTofu Provider
          Cache Directory\n\nTerragrunt now automatically configures OpenTofu\u2019s
          **native provider caching mechanism** by default when running with OpenTofu
          > = 1.10.\n\nNote that if you are using Terraform, you will not be able
          to take advantage of this new feature.\n\nThis feature is only possible
          in OpenTofu due to the hard work and coordination with the OpenTofu team
          to ensure that concurrent access to the provider cache directory is safe
          for all OpenTofu users, regardless of whether they use Terragrunt.\n\n<p
          align=\"center\">\n<img width=\"912\" height=\"486\" alt=\"Screenshot 2025-06-25
          at 12 38 05\u202FPM\" src=\"https://github.com/user-attachments/assets/214cff8d-4fbb-4e70-aa96-c026e91038d7\"
          />\n</p>\n\n##### \u2728New Features\n\n- Automatically sets the `TF_PLUGIN_CACHE_DIR`
          environment variable\n- Uses OpenTofu\u2019s native provider cache instead
          of Terragrunt\u2019s internal cache server\n- Provides improved concurrency
          safety in multi-runner and CI environments\n\n##### \U0001F527 Migration
          Guide\n\nNo action is required if you\u2019re running OpenTofu > = 1.10
          \u2014 provider caching will be configured automatically.\n\nTo disable
          this behavior, use the `--no-auto-provider-cache-dir` flag:\n\n```bash\nterragrunt
          run --all apply --no-auto-provider-cache-dir\n```\n\n##### \u2764\uFE0F
          Special Thanks\n\nThis feature merely automatically activates a feature
          that was introduced in OpenTofu 1.10 by the hard work of [@&#8203;cam72cam](https://redirect.github.com/cam72cam)
          on the OpenTofu team.\n\nThe OpenTofu project takes community feedback seriously
          (including the maintainers of this project), and introduced the ability
          to concurrently access a shared provider cache directory as a feature in
          OpenTofu to make *all users* of OpenTofu better off. Maintainers of Terragrunt
          will continue to collaborate with the OpenTofu team to ensure that using
          Terragrunt with OpenTofu is the easiest way to guarantee the best experience
          managing IaC at scale.\n\n#### What's Changed\n\n- chore: Marked as completed
          runner-pool, reports and provider cache by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4900](https://redirect.github.com/gruntwork-io/terragrunt/pull/4900)\n-
          fix: Properly sets discovery context so that `plan -destroy` and `apply
          -destroy` work right by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4887](https://redirect.github.com/gruntwork-io/terragrunt/pull/4887)\n-
          docs: Implement view plans button by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4890](https://redirect.github.com/gruntwork-io/terragrunt/pull/4890)\n-
          docs: Visual updates to form by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4902](https://redirect.github.com/gruntwork-io/terragrunt/pull/4902)\n-
          docs: Fix docs flag name by [@&#8203;rubensf](https://redirect.github.com/rubensf)
          in [#&#8203;4908](https://redirect.github.com/gruntwork-io/terragrunt/pull/4908)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.88.1...v0.89.0>\n\n###
          [`v0.88.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.88.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.88.0...v0.88.1)\n\n####
          What's Changed\n\n- feat: Use better parsing for `--auth-provider-cmd` by
          [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4881](https://redirect.github.com/gruntwork-io/terragrunt/pull/4881)\n-
          fix: Fixing race condition for `TestTerragruntExcludesFile` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4809](https://redirect.github.com/gruntwork-io/terragrunt/pull/4809)\n-
          fix: Fixing report flags by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4899](https://redirect.github.com/gruntwork-io/terragrunt/pull/4899)\n-
          fix: Fixing `.tf` vs `.tofu` extension parity by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4794](https://redirect.github.com/gruntwork-io/terragrunt/pull/4794)\n-
          chore: Add data.tf to iam directory in refactoring guide by [@&#8203;vit100-trader](https://redirect.github.com/vit100-trader)
          in [#&#8203;4888](https://redirect.github.com/gruntwork-io/terragrunt/pull/4888)\n-
          chore: Refactoring GitHub client into dedicated package by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4879](https://redirect.github.com/gruntwork-io/terragrunt/pull/4879)\n-
          build(deps): bump the js-dependencies group across 1 directory with 7 updates
          by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in
          [#&#8203;4878](https://redirect.github.com/gruntwork-io/terragrunt/pull/4878)\n-
          docs: Update 01-quick-start.mdx by [@&#8203;vit100](https://redirect.github.com/vit100)
          in [#&#8203;4883](https://redirect.github.com/gruntwork-io/terragrunt/pull/4883)\n-
          docs: CI for Terralith to Terragrunt Guide by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4811](https://redirect.github.com/gruntwork-io/terragrunt/pull/4811)\n-
          docs: Update OG images by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4889](https://redirect.github.com/gruntwork-io/terragrunt/pull/4889)\n\n####
          New Contributors\n\n- [@&#8203;vit100](https://redirect.github.com/vit100)
          made their first contribution in [#&#8203;4883](https://redirect.github.com/gruntwork-io/terragrunt/pull/4883)\n-
          [@&#8203;vit100-trader](https://redirect.github.com/vit100-trader) made
          their first contribution in [#&#8203;4888](https://redirect.github.com/gruntwork-io/terragrunt/pull/4888)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.88.0...v0.88.1>\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time
          (no schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
          **Automerge**: Disabled by config. Please merge this manually once you are
          satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
          tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR
          and you won't be reminded about this update again.\n\n---\n\n - [ ] <!--
          rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis
          PR was generated by [Mend Renovate](https://mend.io/renovate/). View the
          [repository job log](https://developer.mend.io/github/osism/testbed).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzEuOSIsInVwZGF0ZWRJblZlciI6IjQxLjE1OS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
        change_url: https://github.com/osism/testbed/pull/2777
        commit_id: cc00b91f1e59f2c97d4b224d8bd3e2a12f4e9332
        patchset: cc00b91f1e59f2c97d4b224d8bd3e2a12f4e9332
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          name: osism/testbed
          short_name: testbed
        src_dir: src/github.com/osism/testbed
        topic: null
      change: '2777'
      change_message: "chore(deps): update dependency gruntwork-io/terragrunt to v0.93.3\n\nThis
        PR contains the following updates:\n\n| Package | Update | Change |\n|---|---|---|\n|
        [gruntwork-io/terragrunt](https://redirect.github.com/gruntwork-io/terragrunt)
        | minor | `v0.88.0` -> `v0.93.3` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>gruntwork-io/terragrunt
        (gruntwork-io/terragrunt)</summary>\n\n### [`v0.93.3`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.3)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.93.2...v0.93.3)\n\n####
        \U0001F41B Bug Fixes\n\n##### `hcl validate --inputs` regression on `validation`
        blocks resolved\n\nA bug introduced in `v0.93.1` preventing `hcl validate
        --inputs` from succeeding on OpenTofu/Terraform modules with variables containing
        `validation` blocks. This was caused by an error in the update to OpenTofu/Terraform
        `.tf` file parsing by Terragrunt in the `hcl validate` command.\n\nThat bug
        has been resolved.\n\n#### What's Changed\n\n- fix: Allow validation blocks
        in inputs by [@&#8203;ThisGuyCodes](https://redirect.github.com/ThisGuyCodes)
        in [#&#8203;5063](https://redirect.github.com/gruntwork-io/terragrunt/pull/5063)\n-
        chore: Updating pin to `v0.93.2` for remote references by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;5058](https://redirect.github.com/gruntwork-io/terragrunt/pull/5058)\n-
        build(deps): bump tar from 7.5.1 to 7.5.2 in /docs-starlight by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]
        in [#&#8203;5057](https://redirect.github.com/gruntwork-io/terragrunt/pull/5057)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.93.2...v0.93.3>\n\n###
        [`v0.93.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.2)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.93.1...v0.93.2)\n\n####
        \u2728 New Features\n\n##### The `list` command now supports the `dot` fomat\n\nThe
        `list` command can now render its output in the Graphviz [DOT language](https://en.wikipedia.org/wiki/DOT_\\(graph_description_language\\)):\n\n```bash\n$
        terragrunt list --format=dot --dependencies\ndigraph {\n  \"live/dev/vpc\"
        ;\n  \"live/dev/db\" ;\n  \"live/dev/ec2\" ;\n  \"live/dev/db\" -> \"live/dev/vpc\";\n
        \ \"live/dev/ec2\" -> \"live/dev/db\";\n  \"live/dev/ec2\" -> \"live/dev/vpc\";\n
        \ \"live/prod/vpc\" ;\n  \"live/prod/db\" ;\n  \"live/prod/ec2\" ;\n  \"live/prod/db\"
        -> \"live/prod/vpc\";\n  \"live/prod/ec2\" -> \"live/prod/db\";\n  \"live/prod/ec2\"
        -> \"live/prod/vpc\";\n}\n```\n\nThis was previously only possible using the
        [`dag graph`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/dag/graph/)
        command, but that command has been refactored to be an alias for the `list
        --format=dot --dependencies` command, to provide greater flexibility in how
        graphs are rendered in the DOT language. This includes integration with the
        experimental [Filter feature](https://terragrunt.gruntwork.io/docs/features/filter/).\n\nYou
        can learn more about this in the [`list` command documentation](https://terragrunt.gruntwork.io/docs/reference/cli/commands/list/#dot-format)\n\n####
        What's Changed\n\n- feat: Moving `dag graph` command to `list --format=dot`
        by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5013](https://redirect.github.com/gruntwork-io/terragrunt/pull/5013)\n-
        docs: Documenting `dot` format for the `list` command by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;5042](https://redirect.github.com/gruntwork-io/terragrunt/pull/5042)\n-
        chore: CICD updates by [@&#8203;denis256](https://redirect.github.com/denis256)
        in [#&#8203;5056](https://redirect.github.com/gruntwork-io/terragrunt/pull/5056)\n-
        chore: Disable experimental tests ignore in CI by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;5021](https://redirect.github.com/gruntwork-io/terragrunt/pull/5021)\n-
        chore: Refactor `find` & `list` so that they use a single write instead of
        intermediate writes by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;5027](https://redirect.github.com/gruntwork-io/terragrunt/pull/5027)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.93.1...v0.93.2>\n\n###
        [`v0.93.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.1)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.93.0...v0.93.1)\n\n####
        \U0001F3CE\uFE0F\_Performance Improvements\n\n- Reduced redundant `--auth-provider-cmd`
        invocations during `run-all`\n- This cuts down on external credential calls
        and lowers authentication overhead for large runs.\n- Updated the unit resolver
        to reuse the configuration parsed during discovery instead of re-parsing each
        `terragrunt.hcl`.\n- This reduces HCL parses and allocations, shortening execution
        time on complex stacks.\n\nIn our internal **\u201CRun all with Auth Provider\u201D**
        benchmark (10 runs, \\~10 ms on auth command), these changes reduced average
        runtime from \\~235 ms to \\~213 ms (about **9% faster**) compared to v0.93.0.\n\nBenchmarks
        of \"BenchmarkDependencyPairwiseOddDependsOnPrevEvenRandomWait\" release changes
        vs main\n\n<p align=\"center\">\n  <img\n    width=\"708\"\n    height=\"380\"\n
        \   alt=\"509178299-daaabc37-3834-40a4-95b3-19a2fb5f2c6d\"\n    src=\"https://github.com/user-attachments/assets/677ed807-b030-4e31-8dd6-1be82fb378bb\"\n
        \ />\n</p>\n\n#### What's Changed\n* perf: unit resolver performance improvements
        by @&#8203;denis2[https://github.com/gruntwork-io/terragrunt/pull/5040](https://redirect.github.com/gruntwork-io/terragrunt/pull/5040)l/5040\n*
        feat: allow input validation with variable in source or version by @&#8203;ThisGuyCod[https://github.com/gruntwork-io/terragrunt/pull/5041](https://redirect.github.com/gruntwork-io/terragrunt/pull/5041)l/5041\n*
        perf: More useful benchmark for determining impact of `hcl fmt` optimization
        by @&#8203;yhakb[https://github.com/gruntwork-io/terragrunt/pull/5026](https://redirect.github.com/gruntwork-io/terragrunt/pull/5026)l/5026\n*
        chore: Add beta releases by @&#8203;Resonance15[https://github.com/gruntwork-io/terragrunt/pull/5052](https://redirect.github.com/gruntwork-io/terragrunt/pull/5052)l/5052\n\n####
        New Contributors\n* @&#8203;ThisGuyCodes made their first contributi[https://github.com/gruntwork-io/terragrunt/pull/5041](https://redirect.github.com/gruntwork-io/terragrunt/pull/5041)l/5041\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.93.0...v0.93.1>\n\n###
        [`v0.93.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.0)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.92.1...v0.93.0)\n\n####
        \U0001F6E0\uFE0F Breaking Changes\n\n##### Removal of deprecated HCL attributes\n\nThe
        `skip`, `retryable_errors`, `retry_max_attempts` and `retry_sleep_interval_sec`
        have all been removed from Terragrunt.\n\nThis is the final planned breaking
        change on the road to Terragrunt 1.0 related to removal of deprecated functionality.
        Breaking changes will be minimized before Terragrunt 1.0, but may still occur
        based on user feedback, or based on the need to stabilize parts of Terragrunt
        before 1.0.\n\nIf you are currently using the `skip` attribute, you'll want
        to adjust your usage to leverage the `exclude` block instead:\n\nBefore:\n\n```hcl\n\n#
        terragrunt.hcl\n\nskip = true\n```\n\nAfter:\n\n```hcl\n\n# terragrunt.hcl\n\nexclude
        {\n  if      = true\n  actions = [\"all\"]\n}\n```\n\nIf you are currently
        using the `retryable_errors` attribute, you'll want to adjust your usage to
        leverage the `errors` block instead:\n\nBefore:\n\n```hcl\n\n# terragrunt.hcl\n\nretryable_errors
        = [\n  \".*Error: transient network issue.*\",\n  \".*Error: timeout.*\"\n]\n\nretry_max_attempts
        \    = 3\nretry_sleep_interval_sec = 5\n```\n\nAfter:\n\n```hcl\n\n# terragrunt.hcl\n\nerrors
        {\n  retry \"transient_errors\" {\n    retryable_errors = [\n      \".*Error:
        transient network issue.*\",\n      \".*Error: timeout.*\"\n    ]\n    max_attempts
        = 3\n    sleep_interval_sec = 5\n  }\n}\n```\n\nRead the detailed [migration
        guide](https://terragrunt.gruntwork.io/docs/migrate/deprecated-attributes/)
        for more information.\n\n#### What's Changed\n\n- chore: removal of deprecated
        hcl attributes skip, retryable\\_errors by [@&#8203;denis256](https://redirect.github.com/denis256)
        in [#&#8203;5033](https://redirect.github.com/gruntwork-io/terragrunt/pull/5033)\n-
        bug: empty paths handling in dependencies by [@&#8203;denis256](https://redirect.github.com/denis256)
        in [#&#8203;5016](https://redirect.github.com/gruntwork-io/terragrunt/pull/5016)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.92.1...v0.93.0>\n\n###
        [`v0.92.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.92.1)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.92.0...v0.92.1)\n\n####
        \u2728 New Features\n\n##### `hcl fmt` supports `--parallelism` for controlling
        concurrency\n\nThe `hcl fmt` command now supports the `--parallelism` flag
        for controlling the number of concurrent files getting formatted. By default,
        the number of concurrent file formats will be determined by the number of
        CPU cores detected on the system running Terragrunt.\n\nSee [`hcl fmt` documentation](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/#parallelism)
        for more information.\n\n#### What's Changed\n\n- feat: Adding support for
        `--parallelism` to `hcl fmt` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;5020](https://redirect.github.com/gruntwork-io/terragrunt/pull/5020)\n-
        docs: Documenting support for `--parallelism` flag in `hcl fmt` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;5031](https://redirect.github.com/gruntwork-io/terragrunt/pull/5031)\n-
        build(deps): bump the js-dependencies group across 1 directory with 5 updates
        by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in
        [#&#8203;5025](https://redirect.github.com/gruntwork-io/terragrunt/pull/5025)\n-
        build(deps): bump actions/upload-artifact from 4 to 5 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]
        in [#&#8203;5024](https://redirect.github.com/gruntwork-io/terragrunt/pull/5024)\n-
        build(deps): bump actions/download-artifact from 4 to 6 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]
        in [#&#8203;5023](https://redirect.github.com/gruntwork-io/terragrunt/pull/5023)\n-
        chore: Refactoring Component by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;5017](https://redirect.github.com/gruntwork-io/terragrunt/pull/5017)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.92.0...v0.92.1>\n\n###
        [`v0.92.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.92.0)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.5...v0.92.0)\n\n####
        \U0001F6E0\uFE0F Breaking Changes\n\n##### Internal `boilerplate` dependency
        upgraded to v0.10.1\n\nThe templating engine ([Boilerplate](https://redirect.github.com/gruntwork-io/boilerplate))
        used by the Terragrunt `catalog` and `scaffold` commands has been upgraded
        to `v0.10.1`.\n\nAs a consequence, the default behavior of scaffolding when
        using the `catalog` and `scaffold` commands has changed to allow for the use
        of Boilerplate hooks and shell commands (see [hooks](https://redirect.github.com/gruntwork-io/boilerplate?tab=readme-ov-file#hooks)
        and [helpers](https://redirect.github.com/gruntwork-io/boilerplate?tab=readme-ov-file#template-helpers)
        in Boilerplate documentation) by default.\n\nNote that Boilerplate will ask
        for permission interactively by default to run said hooks and shell commands,
        and that the interactive prompt will propagate to Terragrunt users.\n\ne.g.\n\n```bash\n$
        terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-shell-commands\n...\n[boilerplate]
        2025/10/24 13:44:56 Shell command details:\n[boilerplate] 2025/10/24 13:44:56
        \  Command: echo\n[boilerplate] 2025/10/24 13:44:56   Arguments: [-n SHELL_EXECUTED_VALUE_1]\n[boilerplate]
        2025/10/24 13:44:56   Working Directory: /var/folders/x3/j561187d7bn7j25xf6hs73wr0000gn/T/scaffold3587887181/.boilerplate\nExecute
        shell command? (y/a/n) :\n```\n\n```bash\n$ terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-hooks\n...\n[boilerplate]
        2025/10/24 13:48:27 Hook details:\n[boilerplate] 2025/10/24 13:48:27   Command:
        echo\n[boilerplate] 2025/10/24 13:48:27   Arguments: [BEFORE_HOOK_EXECUTED]\n[boilerplate]
        2025/10/24 13:48:27   Working Directory: /var/folders/x3/j561187d7bn7j25xf6hs73wr0000gn/T/scaffold4203613613/.boilerplate\nExecute
        hook? (y/a/n) :\n```\n\nWhen using the `--non-interactive` flag, Terragrunt
        will skip prompts and allow hooks and shell commands automatically by default.\n\n```bash\n$
        terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-hooks
        --non-interactive\n...\n[boilerplate] 2025/10/24 13:50:56 Executing hook (previously
        confirmed or all confirmed)\n[boilerplate] 2025/10/24 13:50:56 Running command:
        echo BEFORE_HOOK_EXECUTED\nBEFORE_HOOK_EXECUTED\n...\n[boilerplate] 2025/10/24
        13:50:56 Executing hook (previously confirmed or all confirmed)\n[boilerplate]
        2025/10/24 13:50:56 Running command: echo AFTER_HOOK_EXECUTED\nAFTER_HOOK_EXECUTED\n```\n\nIf
        you would like to explicitly prevent this behavior, you can use the `--no-hooks`
        and `--no-shell` flags added to `catalog` and `scaffold` to explicitly prevent
        usage of these features:\n\n```bash\n$ terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-hooks
        --non-interactive --no-hooks --no-shell\n...\n[boilerplate] 2025/10/24 13:53:40
        Hooks are disabled, skipping 1 hook(s)\n...\n[boilerplate] 2025/10/24 13:53:40
        Hooks are disabled, skipping 1 hook(s)\n13:53:40.141 INFO   Running fmt on
        generated code .\n13:53:40.143 INFO   Scaffolding completed\n```\n\n```bash\n$
        terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-shell-commands
        --non-interactive --no-hooks --no-shell\n...\n[boilerplate] 2025/10/24 13:54:47
        Shell helpers are disabled. Will not execute shell command '[echo -n SHELL_EXECUTED_VALUE_1]'.
        Returning placeholder value 'replace-me'.\n[boilerplate] 2025/10/24 13:54:47
        Shell helpers are disabled. Will not execute shell command '[echo -n SHELL_EXECUTED_VALUE_2]'.
        Returning placeholder value 'replace-me'.\n[boilerplate] 2025/10/24 13:54:47
        Hooks are disabled, skipping 0 hook(s)\n13:54:47.356 INFO   Running fmt on
        generated code .\n13:54:47.356 INFO   ./terragrunt.hcl was updated\n13:54:47.356
        INFO   Scaffolding completed\n```\n\nYou can also set the `no_hooks` and `no_shell`
        attributes in your `catalog` config to have these set by default for all users
        of your project:\n\n```bash\n\n# root.hcl\ncatalog {\n  no_shell = true\n
        \ no_hooks = true\n}\n```\n\n\u26A0\uFE0F Remember that IaC configurations
        are inherently powerful, and should not be trusted blindly. Make sure that
        you review and trust template sources when generating templates using Terragrunt.\n\n####
        \U0001F9EA\_Experiments Updated\n\n##### `filter-flag` experiment now supported
        in  `hcl` commands\n\nThe `--filter` flag is now supported in `hcl` commands
        ([`validate`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/validate/)
        and [`fmt`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/))
        (remember that you must use the [`filter-flag`](https://www.notion.so/v0-91-5-296d8759a6828016aaebe69000855672?pvs=21)
        experiment to try this).\n\ne.g.\n\n```bash\n\n# Filter by path with glob
        patterns\nterragrunt hcl validate --filter './prod/**'\n\n# Filter by name\nterragrunt
        hcl validate --filter 'app*'\n\n# Exclude specific configurations\nterragrunt
        hcl validate --filter '!./test/**'\n\n# Combine filters with intersection
        (refinement)\nterragrunt hcl validate --filter './prod/** | !name=legacy'\n\n#
        Multiple filters with union\nterragrunt hcl validate --filter 'app1' --filter
        'app2'\n```\n\nWhen using the `--filter` flag for `hcl fmt`, filtering applies
        to files instead of units / stacks. Only file path filters are supported for
        the `hcl fmt` command.\n\n```bash\n\n# Format a particular file\nterragrunt
        hcl fmt --filter './prod/app1/terragrunt.hcl'\n\n# Format files matching a
        glob\nterragrunt hcl fmt --filter './prod/**'\n\n# Exclude specific configurations\nterragrunt
        hcl fmt --filter '!./test/**'\n```\n\n#### \U0001F3CE\uFE0F\_Performance Improvements\n\n#####
        `hcl fmt` Performance Improved\n\nThe performance of the `hcl fmt` command
        has been improved substantially.\n\n<img width=\"1160\" height=\"609\" alt=\"Screenshot
        2025-10-27 at 10 15 56\" src=\"https://github.com/user-attachments/assets/42c16140-53a9-4cbe-8f85-e6593295c323\"
        />\n\nFormatting files is now roughly twice as fast due to parallelization
        of file formatting, and optimizations used in file exclusion.\n\n#### What's
        Changed\n\n- feat: Adding support for `--filter` in `hcl` commands by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;5006](https://redirect.github.com/gruntwork-io/terragrunt/pull/5006)\n-
        docs: Documenting the relationship between `--external` and `--dependencies`
        by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5014](https://redirect.github.com/gruntwork-io/terragrunt/pull/5014)\n-
        docs: Documenting support for `--filter` in `hcl` commands by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;5010](https://redirect.github.com/gruntwork-io/terragrunt/pull/5010)\n-
        chore: Bumping boilerplate by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4805](https://redirect.github.com/gruntwork-io/terragrunt/pull/4805)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.5...v0.92.0>\n\n###
        [`v0.91.5`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.5)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.4...v0.91.5)\n\n####
        \U0001F9EA\_Experiments Updated\n\n##### **`filter-flag` updated with `run`
        support**\n\nThe `--filter` flag is now supported on the `run` command (remember
        that you must use the [`filter-flag`](https://www.notion.so/v0-91-5-296d8759a6828016aaebe69000855672?pvs=21)
        experiment to try this).\n\ne.g.\n\n```bash\n\n# Filter by path with glob
        patterns\nterragrunt run --all --filter 'prod/**' -- plan\n\n# Filter by name\nterragrunt
        run --all --filter 'app*' -- apply\n\n# Exclude specific configurations\nterragrunt
        run --all --filter '!./test/**' -- plan\n\n# Combine filters with intersection
        (refinement)\nterragrunt run --all --filter './prod/** | !name=legacy' --
        apply\n\n# Multiple filters with union\nterragrunt run --all --filter 'app1'
        --filter 'app2' -- plan\n\n```\n\nFor more information, see the documentation
        on [Filtering Units](https://terragrunt-docs-git-docs-documenting-support-f-b0699d-gruntwork.vercel.app/docs/reference/cli/commands/run/#filtering-units).\n\nIf
        you give this feature a try, make sure to share your feedback on the [Filter
        Flag RFC](https://redirect.github.com/gruntwork-io/terragrunt/issues/4060)\n\n####
        What's Changed\n\n- feat: Adding support for `--filter` flag in `run` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4981](https://redirect.github.com/gruntwork-io/terragrunt/pull/4981)\n-
        docs: Documenting support for `--filter` in the `run` command by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;5015](https://redirect.github.com/gruntwork-io/terragrunt/pull/5015)\n-
        chore: fixes for periodically failing tests by [@&#8203;denis256](https://redirect.github.com/denis256)
        in [#&#8203;5011](https://redirect.github.com/gruntwork-io/terragrunt/pull/5011)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.4...v0.91.5>\n\n###
        [`v0.91.4`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.4)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.3...v0.91.4)\n\n####
        \U0001F9EA\_Experiments Updated\n\n##### **`filter-flag` updated with `reading=`
        support**\n\nThe `--filter` flag now supports usage of the `reading=` attribute
        to filter on components that read particular shared infrastructure configurations.\n\ne.g.\n\n```bash\nterragrunt
        find --filter 'reading=shared.hcl'\nterragrunt find --filter 'reading=common/*.hcl'
        # Globs supported!\nterragrunt find --filter 'reading=config/**' # Double-wildcard
        globs are required filtering on files nested in subdirectories.\nterragrunt
        find --filter 'reading=config/vars.tfvars'\n```\n\nThis behavior is similar
        to that provided by the [`--queue-include-units-reading`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/run/#queue-include-units-reading)
        flag, with additional support for globs, negation and filter chaining supported
        in the `--filter` flag more generally.\n\nFor more information, see the documentation
        on [Attribute-Based Filtering](https://terragrunt.gruntwork.io/docs/reference/cli/commands/find/#attribute-based-filtering).\n\nIf
        you give this feature a try, make sure to share your feedback on the [Filter
        Flag RFC](https://redirect.github.com/gruntwork-io/terragrunt/issues/4060)\n\n####
        What's Changed\n\n- feat: Adding support for `reading=` in `-filter` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;5004](https://redirect.github.com/gruntwork-io/terragrunt/pull/5004)\n-
        docs: Documenting the new `reading` attribute by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;5005](https://redirect.github.com/gruntwork-io/terragrunt/pull/5005)\n-
        docs: documenting how to exclude files from modules by [@&#8203;cebidhem](https://redirect.github.com/cebidhem)
        in [#&#8203;5008](https://redirect.github.com/gruntwork-io/terragrunt/pull/5008)\n-
        docs: Small fixes in the Provider Cache Server documentation by [@&#8203;RafaelWO](https://redirect.github.com/RafaelWO)
        in [#&#8203;4959](https://redirect.github.com/gruntwork-io/terragrunt/pull/4959)\n\n####
        New Contributors\n\n- [@&#8203;cebidhem](https://redirect.github.com/cebidhem)
        made their first contribution in [#&#8203;5008](https://redirect.github.com/gruntwork-io/terragrunt/pull/5008)\n-
        [@&#8203;RafaelWO](https://redirect.github.com/RafaelWO) made their first
        contribution in [#&#8203;4959](https://redirect.github.com/gruntwork-io/terragrunt/pull/4959)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.3...v0.91.4>\n\n###
        [`v0.91.3`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.3)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.2...v0.91.3)\n\n####
        \u2728 New Features\n\n##### `--reading` flag added to the `find` command\n\nThe
        `find` command now supports the `--reading` flag, which allows you to discover
        the shared configurations read by units and stacks when using the `--json`
        format.\n\n```bash\n$ terragrunt find --reading --json\n[\n  {\n    \"type\":
        \"unit\",\n    \"path\": \"aws-account-1\",\n    \"reading\": [\n      \"aws-data.yml\"\n
        \   ]\n  },\n  {\n    \"type\": \"unit\",\n    \"path\": \"aws-account-2\",\n
        \   \"reading\": [\n      \"aws-data.yml\"\n    ]\n  },\n  {\n    \"type\":
        \"unit\",\n    \"path\": \"gcp-project-1\",\n    \"reading\": [\n      \"gcp-data.hcl\"\n
        \   ]\n  }\n]\n```\n\nYou can use this information to drive custom logic in
        your workflows based on the changes related to particular files.\n\ne.g.\n\n```bash\n$
        terragrunt find --reading --json | jq '[.[] | select(.reading[]? | contains(\"aws-data.yml\"))|
        .path]'\n[\n  \"aws-account-1\",\n  \"aws-account-2\"\n]\n\n$ terragrunt find
        --reading --json | jq '[.[] | select(.reading[]? | contains(\"gcp-data.hcl\"))|
        .path]'\n[\n  \"gcp-project-1\"\n]\n```\n\nYou can learn more about the `--reading`
        flag in the [`find` documentation](https://terragrunt.gruntwork.io/docs/reference/cli/commands/find/#reading-files).\n\n####
        \U0001F41B Bug Fixes\n\n##### Empty stacks no longer throw errors\n\nPreviously,
        a bug in the logic used for making sure that users didn\u2019t accidentally
        run on empty stacks resulted in users getting a non-zero exit code when all
        units in a stack were excluded (e.g. via the `exclude` block).\n\nThat bug
        has been fixed.\n\n##### Dependency outputs can now be used in generate blocks\n\nPreviously,
        a bug in the way HCL parsing was done during discovery resulted in errors
        being thrown for users when dependency outputs were used in `generate` blocks.
        That error has since been resolved.\n\nThat bug has been fixed.\n\n#### What's
        Changed\n\n- feat: Adding reading support in `find` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;5002](https://redirect.github.com/gruntwork-io/terragrunt/pull/5002)\n-
        fix: Removing filter enabled check on empty stacks by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4992](https://redirect.github.com/gruntwork-io/terragrunt/pull/4992)\n-
        fix: reference of dependency outputs in generate by [@&#8203;denis256](https://redirect.github.com/denis256)
        in [#&#8203;4994](https://redirect.github.com/gruntwork-io/terragrunt/pull/4994)\n-
        docs: Documenting new `-reading` flag for `find` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;5003](https://redirect.github.com/gruntwork-io/terragrunt/pull/5003)\n-
        docs: Fixing --source-map explanation by [@&#8203;atheiman](https://redirect.github.com/atheiman)
        in [#&#8203;4997](https://redirect.github.com/gruntwork-io/terragrunt/pull/4997)\n-
        docs: Fixing `Filters` docs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4996](https://redirect.github.com/gruntwork-io/terragrunt/pull/4996)\n-
        chore: Tracking DAG nodes in components by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4998](https://redirect.github.com/gruntwork-io/terragrunt/pull/4998)\n-
        chore: Tracking reads in components by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;5000](https://redirect.github.com/gruntwork-io/terragrunt/pull/5000)\n-
        chore: Updating language in discovery commands by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;5001](https://redirect.github.com/gruntwork-io/terragrunt/pull/5001)\n-
        chore: Using a standard shell string parsing library instead of handling it
        ourselves by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4991](https://redirect.github.com/gruntwork-io/terragrunt/pull/4991)\n-
        build(deps): bump the js-dependencies group across 1 directory with 5 updates
        by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in
        [#&#8203;4993](https://redirect.github.com/gruntwork-io/terragrunt/pull/4993)\n-
        build(deps): bump vite from 6.3.6 to 6.4.1 in /docs-starlight by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]
        in [#&#8203;4999](https://redirect.github.com/gruntwork-io/terragrunt/pull/4999)\n\n####
        New Contributors\n\n- [@&#8203;atheiman](https://redirect.github.com/atheiman)
        made their first contribution in [#&#8203;4997](https://redirect.github.com/gruntwork-io/terragrunt/pull/4997)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.2...v0.91.3>\n\n###
        [`v0.91.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.2)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.1...v0.91.2)\n\n####
        \U0001F9EA Experiments Introduced\n\n##### `filter-flag` introduced\n\nA new
        experiment named [filter-flag](https://terragrunt.gruntwork.io/docs/reference/experiments/#filter-flag)
        has been introduced, allowing for experimental usage of the new `--filter`
        flag described in [RFC #&#8203;4060](https://redirect.github.com/gruntwork-io/terragrunt/issues/4060).
        The `filter-flag` experiment is incomplete, and minimal support for the `--filter`
        flag has been added exclusively to the [`find`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/find/)
        and [`list`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/list/)
        commands.\n\nThe filter flag allows for sophisticated querying of particular
        Terragrunt stacks and units in a way that is currently only possible using
        a combination of [`\u2014queue-`](https://terragrunt.gruntwork.io/docs/features/run-queue/#controlling-the-queue)
        prefixed flags.\n\nExample filter usage might look like the following:\n\n```bash\n$
        terragrunt find --filter './prod/** | name=web'\nprod/services/web\n```\n\n>
        \\[!IMPORTANT]\n>\n> While the `filter-flag` experiment is active, you will
        need to enable the `filter-flag` experiment for any command that uses the
        `filter-flag`. See [Controlling Experiment Mode](https://terragrunt-docs-ics3biiml-gruntwork.vercel.app/docs/reference/experiments/#controlling-experiment-mode)
        for more details.\n>\n> e.g.\n>\n> ```bash\n> terragrunt find --experiment
        filter-flag --filter './prod/** | name=web'\n> ```\n\nYou can learn more about
        filters, including documentation on the syntax and examples of each type of
        filter in the [dedicated feature documentation for filters](https://terragrunt.gruntwork.io/docs/features/filter/).\n\n####
        What's Changed\n\n- feat: Introduce `filter-flag` experiment by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4969](https://redirect.github.com/gruntwork-io/terragrunt/pull/4969)\n-
        chore: Adding checkbox for reproduction by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4980](https://redirect.github.com/gruntwork-io/terragrunt/pull/4980)\n-
        docs: Use special dark/light mode for Terragrunt logos by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4975](https://redirect.github.com/gruntwork-io/terragrunt/pull/4975)\n-
        docs: Fixes overflow issue on the right sidebar by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
        in [#&#8203;4972](https://redirect.github.com/gruntwork-io/terragrunt/pull/4972)\n-
        docs: Documenting `filter-flag` experiment by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4973](https://redirect.github.com/gruntwork-io/terragrunt/pull/4973)\n-
        docs: Fixing Flag Card icons by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4974](https://redirect.github.com/gruntwork-io/terragrunt/pull/4974)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.1...v0.91.2>\n\n###
        [`v0.91.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.1)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.0...v0.91.1)\n\n####
        \U0001F9F9 Chores\n\n##### Updated dependencies\n\nUpgraded multiple Golang
        dependencies to the latest stable versions:\n\n- Updated cloud.google.com/go/storage
        to v1.57.0\n- Updated github.com/aws/aws-sdk-go-v2 to v1.39.2\n- Updated github.com/getsops/sops/v3
        to v3.11.0\n- Updated github.com/gofrs/flock to v0.13.0\n- Updated github.com/gruntwork-io/terratest
        to v0.51.0\n- Updated github.com/hashicorp/go-getter to v1.8.2\n- Updated
        golang.org/x/mod to v0.29.0\n- Updated golang.org/x/oauth2 to v0.32.0\n- Updated
        golang.org/x/sys to v0.37.0\n- Updated golang.org/x/term to v0.36.0\n- Updated
        golang.org/x/text to v0.30.0\n- Updated google.golang.org/api to v0.252.0\n-
        Updated google.golang.org/grpc to v1.76.0\n- Updated google.golang.org/protobuf
        to v1.36.10\n\n#### What's Changed\n\n- chore: Undo Starlight patch by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4964](https://redirect.github.com/gruntwork-io/terragrunt/pull/4964)\n-
        chore: Bump Bun dependencies by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4965](https://redirect.github.com/gruntwork-io/terragrunt/pull/4965)\n-
        chore: Refactor out `component` package by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4963](https://redirect.github.com/gruntwork-io/terragrunt/pull/4963)\n-
        feat: Adding `filter` package by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4958](https://redirect.github.com/gruntwork-io/terragrunt/pull/4958)\n-
        chore: multiple dependencies update by [@&#8203;denis256](https://redirect.github.com/denis256)
        in [#&#8203;4968](https://redirect.github.com/gruntwork-io/terragrunt/pull/4968)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.0...v0.91.1>\n\n###
        [`v0.91.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.0)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.90.2...v0.91.0)\n\nRemoval
        of behavior where inputs are read from dependencies\n\n### \U0001F6E0\uFE0F
        Breaking Changes\n\n##### **Removal of behavior where inputs are read from
        dependencies**\n\nTerragrunt no longer exposes **dependency inputs** as accessible
        values.\n\nThis change improves performance and simplifies dependency handling
        by removing a feature that significantly slowed configuration parsing due
        to a requirement for recursive parsing of dependencies of dependencies for
        every dependent.\n\nIf your configurations currently access dependency inputs
        like this:\n\n```hcl\ndependency \"foo\" {\n  config_path = \"../foo\"\n}\n\ninputs
        = {\n  my_input = dependency.foo.inputs.an_input_from_foo\n}\n\n```\n\nYou\u2019ll
        need to update them to reference **outputs** instead:\n\n```hcl\ndependency
        \"foo\" {\n  config_path = \"../foo\"\n}\n\ninputs = {\n  my_input = dependency.foo.outputs.an_output_from_foo\n}\n\n```\n\nAccessing
        outputs remains the supported and recommended way to share data between modules.\n\n####
        What's Changed\n\n- feat: removal of behavior where inputs are read from dependencies
        by [@&#8203;denis256](https://redirect.github.com/denis256) in [#&#8203;4960](https://redirect.github.com/gruntwork-io/terragrunt/pull/4960)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.90.2...v0.91.0>\n\n###
        [`v0.90.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.90.2)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.90.1...v0.90.2)\n\n####
        \u2728 New Features\n\n##### Added `--terragrunt-no-cache` flag for `run_cmd`\n\nThe
        `run_cmd` command now supports a new flag, `--terragrunt-no-cache`, which
        disables caching of command execution output.\n\nThis option is useful when
        you want to ensure that each command run produces fresh results, especially
        in dynamic environments or when working with frequently changing external
        data.\n\n#### What's Changed\n\n- feat: add `--terragrunt-no-cache` parameter
        for `run_cmd` by [@&#8203;denis256](https://redirect.github.com/denis256)
        in [#&#8203;4951](https://redirect.github.com/gruntwork-io/terragrunt/pull/4951)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.90.1...v0.90.2>\n\n###
        [`v0.90.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.90.1)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.90.0...v0.90.1)\n\n####
        \u2728 New Features\n\n##### `hcl fmt` now supports `--queue` flags\n\nThe
        `hcl fmt` command now supports `--queue-` prefixed flags (e.g. [`--queue-exclude-dir`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/#queue-exclude-dir)).\n\n####
        \U0001F41B Bug Fixes\n\n##### Discovery in `run` command discovers hidden
        directories\n\nWhen discovering units for the `run` command, Terragrunt will
        now search through (most) hidden directories.\n\nIt will still avoid performing
        discovery in the following hidden directories:\n\n- `.git`\n- `.terraform`\n-
        `.terragrunt-cache`\n\nTo manually force or suppress discovery, use [`--queue-include-dir`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/#queue-exclude-dir)
        and [`--queue-exclude-dir`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/#queue-exclude-dir)
        respectively.\n\n##### `--queue-ignore-errors` no longer breaks DAG resolution\n\nA
        bug in the implementation of [`--queue-ignore-errors`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/run/#queue-ignore-errors)
        resulted in the flag also preventing the proper resolution of the [Directed
        Acyclic Graph (DAG)](https://terragrunt.gruntwork.io/docs/getting-started/terminology/#directed-acyclic-graph-dag)
        when suppressing errors.\n\nThis has been fixed.\n\n##### `--tf-path` respected
        through dependencies\n\nA bug in the precedence resolution of the [`terraform_binary`
        HCL attribute](https://terragrunt.gruntwork.io/docs/reference/hcl/attributes/#terraform_binary)
        and the [`--tf-path` flag](https://terragrunt.gruntwork.io/docs/reference/cli/commands/run/#tf-path)
        resulted in the default value of `terraform_binary` taking affect (`tofu`
        if both `tofu` and `terraform` are installed) when `terraform_binary` was
        not specified in dependencies.\n\nThis bug has been resolved, and the `--tf-path`
        flag will be respected in dependencies as well.\n\n##### Spurious errors resolved
        in `read_terragrunt_config()`\n\nA bug caused the [`read_terragrunt_config()`](https://terragrunt.gruntwork.io/docs/reference/hcl/functions/#read_terragrunt_config)
        HCL function to return spurious errors when used in a configuration parsed
        during the discovery phase of configuration resolution of a run.\n\nThis has
        been fixed.\n\n#### What's Changed\n\n- feat: Adding queue flags to `hcl fmt`
        by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4950](https://redirect.github.com/gruntwork-io/terragrunt/pull/4950)\n-
        fix: discovery of hidden directories by [@&#8203;denis256](https://redirect.github.com/denis256)
        in [#&#8203;4945](https://redirect.github.com/gruntwork-io/terragrunt/pull/4945)\n-
        fix: Fixing `--queue-ignore-errors` resulting in ignored DAG order by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4953](https://redirect.github.com/gruntwork-io/terragrunt/pull/4953)\n-
        fix: Ensure `--tf-path` is used in dependencies by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4955](https://redirect.github.com/gruntwork-io/terragrunt/pull/4955)\n-
        fix: Prevent parse errors when using `read_terragrunt_config()` during discovery
        by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4956](https://redirect.github.com/gruntwork-io/terragrunt/pull/4956)\n-
        docs: Updating docs for `--out-dir` and `--json-out-dir` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4957](https://redirect.github.com/gruntwork-io/terragrunt/pull/4957)\n-
        docs: Pipelines won't bite landing page by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
        in [#&#8203;4948](https://redirect.github.com/gruntwork-io/terragrunt/pull/4948)\n-
        docs: Fixing form by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
        in [#&#8203;4954](https://redirect.github.com/gruntwork-io/terragrunt/pull/4954)\n-
        chore: failing tests fixes by [@&#8203;denis256](https://redirect.github.com/denis256)
        in [#&#8203;4944](https://redirect.github.com/gruntwork-io/terragrunt/pull/4944)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.90.0...v0.90.1>\n\n###
        [`v0.90.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.90.0)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.4...v0.90.0)\n\nRemoval
        of deprecated commands\n\nThis is the next step on the road to Terragrunt
        1.0, completing the Terragrunt CLI Redesign. Read the [CLI Redesign migration
        guide](https://terragrunt.gruntwork.io/docs/migrate/cli-redesign/) for guidance
        on adapting to these breaking changes.\n\nWe anticipate no further breaking
        changes to the CLI prior to the release of Terragrunt 1.0, where the CLI will
        remain stable without breaking changes until at least Terragrunt 2.0.\n\nFor
        a full list of deprecated features that will be removed prior to the release
        of Terragrunt 1.0, see the [removal schedule](https://redirect.github.com/gruntwork-io/terragrunt/issues/3535).\n\n###
        \U0001F6E0\uFE0F Breaking Changes\n\n##### Removal of Deprecated Commands\n\nThe
        following deprecated CLI commands have been removed to streamline the command
        line API ahead of 1.0.\n\nUse the new commands introduced during the CLI redesign
        that replace them:\n\n- `terragrunt terragrunt-info` \u2192 `terragrunt info
        print`\n- `terragrunt hclfmt` \u2192 `terragrunt hcl fmt`\n- `terragrunt hclvalidate`
        \u2192 `terragrunt hcl validate`\n- `terragrunt validate-inputs` \u2192 `terragrunt
        hcl validate --inputs`\n- `terragrunt render-json` \u2192 `terragrunt render
        --json -w`\n- `terragrunt graph-dependencies` \u2192 `terragrunt dag graph`\n-
        `terragrunt output-module-groups` \u2192 `terragrunt find --dag --json`\n\n####
        What's Changed\n\n- chore: removal of deprecated commands by [@&#8203;denis256](https://redirect.github.com/denis256)
        in [#&#8203;4918](https://redirect.github.com/gruntwork-io/terragrunt/pull/4918)\n-
        chore: Removal of output-module-groups cli command by [@&#8203;denis256](https://redirect.github.com/denis256)
        in [#&#8203;4937](https://redirect.github.com/gruntwork-io/terragrunt/pull/4937)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.4...v0.90.0>\n\n###
        [`v0.89.4`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.4)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.3...v0.89.4)\n\n####
        \U0001F41B\_Bug Fixes\n\n##### Collection of exit code for `-detailed-exitcode`
        behavior in `run --all`\n\nImproved run-all plan -detailed-exitcode aggregation
        to correctly return 2 when any unit has drift, even if another unit hits a
        retryable error.\n\n#### What's Changed\n\n- fix(run-all): corrected -detailed-exitcode
        aggregation  by [@&#8203;denis256](https://redirect.github.com/denis256) in
        [#&#8203;4932](https://redirect.github.com/gruntwork-io/terragrunt/pull/4932)\n-
        docs: stack generate documentation update by [@&#8203;denis256](https://redirect.github.com/denis256)
        in [#&#8203;4930](https://redirect.github.com/gruntwork-io/terragrunt/pull/4930)\n-
        docs: Form updates by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
        in [#&#8203;4911](https://redirect.github.com/gruntwork-io/terragrunt/pull/4911)\n-
        docs: Fixing up signup form by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
        in [#&#8203;4933](https://redirect.github.com/gruntwork-io/terragrunt/pull/4933)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.3...v0.89.4>\n\n###
        [`v0.89.3`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.3)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.2...v0.89.3)\n\n####
        What's Changed\n\n- fix: Added missing flags to the `hcl` command by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4927](https://redirect.github.com/gruntwork-io/terragrunt/pull/4927)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.2...v0.89.3>\n\n###
        [`v0.89.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.2)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.1...v0.89.2)\n\n####
        What's Changed\n\n- fix: Fixing Terralith to Terragrunt integration test by
        [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4909](https://redirect.github.com/gruntwork-io/terragrunt/pull/4909)\n-
        fix: Fixing external dependency resolution by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4926](https://redirect.github.com/gruntwork-io/terragrunt/pull/4926)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.1...v0.89.2>\n\n###
        [`v0.89.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.1)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.0...v0.89.1)\n\n####
        What's Changed\n\n- fix: Fixed bug where discovery warned that outputs were
        mocked. by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4923](https://redirect.github.com/gruntwork-io/terragrunt/pull/4923)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.0...v0.89.1>\n\n###
        [`v0.89.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.0)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.88.1...v0.89.0)\n\nSeveral
        experimental features have been made generally available.\n\n#### \U0001F6E0\uFE0F
        Breaking Changes\n\n##### Runner-pool\n\nTerragrunt now supports the Runner
        Pool concurrency model, replacing the traditional group-based concurrency
        model with a dynamic scheduler by default.\n\nInstead of waiting for groups
        of units that block downstream units to complete their runs, the Runner Pool
        executes each unit as soon as its dependencies (or dependents for destroys)
        are resolved. This improves efficiency, reduces bottlenecks, and limits the
        impact of individual failures on the run of the entire queue.\n\n##### \u2728New
        Features\n\n- Dynamically schedules Units as soon as dependencies (or dependents)
        are satisfied\n- Improves throughput for large stacks\n- Provides better fault-isolation
        for failed units\n\n<p align=\"center\">\n\n<img width=\"789\" height=\"480\"
        alt=\"image\" src=\"https://github.com/user-attachments/assets/7d88e437-2d5f-4477-86eb-0733b7062f0d\"
        />\n\n</p>\n\n##### Report\n\nThe experimental Report feature is now stable
        and enabled by default.\n\nEvery Terragrunt run will now emit a short summary
        at the end of the run that looks like the following by default:\n\n```bash\n$
        terragrunt run --all plan\n\n# Omitted for brevity...\n\n\u276F\u276F Run
        Summary  3 units  62ms\n   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n
        \  Succeeded    3\n\n```\n\nThis summary will give a high-level overview of
        the run results for units in a given Terragrunt run.\n\nYou can optionally
        request a CSV or JSON report of runs as well, giving you detailed insights
        as to the performance of each run using the `--report` flag:\n\n```bash\nterragrunt
        run --all plan --report-schema-file report.schema.csv\n```\n\n```csv\nName,Started,Ended,Result,Reason,Cause\nfirst-exclude,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,excluded,exclude
        block,\nsecond-exclude,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,excluded,exclude
        block,\nfirst-failure,2025-06-05T16:28:41-04:00,2025-06-05T16:28:42-04:00,failed,run
        error,\nfirst-success,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,succeeded,,\nsecond-failure,2025-06-05T16:28:41-04:00,2025-06-05T16:28:42-04:00,failed,run
        error,\nsecond-success,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,succeeded,,\nsecond-early-exit,2025-06-05T16:28:42-04:00,2025-06-05T16:28:42-04:00,early
        exit,run error,\nfirst-early-exit,2025-06-05T16:28:42-04:00,2025-06-05T16:28:42-04:00,early
        exit,run error,\n```\n\n```bash\nterragrunt run --all plan --report-schema-file
        report.schema.json\n```\n\n```json\n[\n  {\n    \"Name\": \"first-exclude\",\n
        \   \"Started\": \"2025-06-05T16:28:41-04:00\",\n    \"Ended\": \"2025-06-05T16:28:41-04:00\",\n
        \   \"Result\": \"excluded\",\n    \"Reason\": \"exclude block\"\n  },\n  {\n
        \   \"Name\": \"first-success\",\n    \"Started\": \"2025-06-05T16:28:41-04:00\",\n
        \   \"Ended\": \"2025-06-05T16:28:41-04:00\",\n    \"Result\": \"succeeded\"\n
        \ }\n]\n\n```\n\n##### \u2728New Features\n\n- Generates detailed run reports
        (CSV and JSON formats supported)\n- Displays run summaries directly in the
        CLI output\n- Allows disabling summaries if desired\n\nTo learn more about
        the Run Report feature, read the dedicated guide on Run Reports [here](https://terragrunt.gruntwork.io/docs/features/run-report/).\n\n#####
        \U0001F527 Migration Guide\n\nNo action is required\n\nTo disable summary
        output explicitly, use `--disable-report-summary`:\n\n```bash\nterragrunt
        run --all plan --disable-report-summary\n```\n\n##### Auto OpenTofu Provider
        Cache Directory\n\nTerragrunt now automatically configures OpenTofu\u2019s
        **native provider caching mechanism** by default when running with OpenTofu
        > = 1.10.\n\nNote that if you are using Terraform, you will not be able to
        take advantage of this new feature.\n\nThis feature is only possible in OpenTofu
        due to the hard work and coordination with the OpenTofu team to ensure that
        concurrent access to the provider cache directory is safe for all OpenTofu
        users, regardless of whether they use Terragrunt.\n\n<p align=\"center\">\n<img
        width=\"912\" height=\"486\" alt=\"Screenshot 2025-06-25 at 12 38 05\u202FPM\"
        src=\"https://github.com/user-attachments/assets/214cff8d-4fbb-4e70-aa96-c026e91038d7\"
        />\n</p>\n\n##### \u2728New Features\n\n- Automatically sets the `TF_PLUGIN_CACHE_DIR`
        environment variable\n- Uses OpenTofu\u2019s native provider cache instead
        of Terragrunt\u2019s internal cache server\n- Provides improved concurrency
        safety in multi-runner and CI environments\n\n##### \U0001F527 Migration Guide\n\nNo
        action is required if you\u2019re running OpenTofu > = 1.10 \u2014 provider
        caching will be configured automatically.\n\nTo disable this behavior, use
        the `--no-auto-provider-cache-dir` flag:\n\n```bash\nterragrunt run --all
        apply --no-auto-provider-cache-dir\n```\n\n##### \u2764\uFE0F Special Thanks\n\nThis
        feature merely automatically activates a feature that was introduced in OpenTofu
        1.10 by the hard work of [@&#8203;cam72cam](https://redirect.github.com/cam72cam)
        on the OpenTofu team.\n\nThe OpenTofu project takes community feedback seriously
        (including the maintainers of this project), and introduced the ability to
        concurrently access a shared provider cache directory as a feature in OpenTofu
        to make *all users* of OpenTofu better off. Maintainers of Terragrunt will
        continue to collaborate with the OpenTofu team to ensure that using Terragrunt
        with OpenTofu is the easiest way to guarantee the best experience managing
        IaC at scale.\n\n#### What's Changed\n\n- chore: Marked as completed runner-pool,
        reports and provider cache by [@&#8203;denis256](https://redirect.github.com/denis256)
        in [#&#8203;4900](https://redirect.github.com/gruntwork-io/terragrunt/pull/4900)\n-
        fix: Properly sets discovery context so that `plan -destroy` and `apply -destroy`
        work right by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4887](https://redirect.github.com/gruntwork-io/terragrunt/pull/4887)\n-
        docs: Implement view plans button by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
        in [#&#8203;4890](https://redirect.github.com/gruntwork-io/terragrunt/pull/4890)\n-
        docs: Visual updates to form by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
        in [#&#8203;4902](https://redirect.github.com/gruntwork-io/terragrunt/pull/4902)\n-
        docs: Fix docs flag name by [@&#8203;rubensf](https://redirect.github.com/rubensf)
        in [#&#8203;4908](https://redirect.github.com/gruntwork-io/terragrunt/pull/4908)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.88.1...v0.89.0>\n\n###
        [`v0.88.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.88.1)\n\n[Compare
        Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.88.0...v0.88.1)\n\n####
        What's Changed\n\n- feat: Use better parsing for `--auth-provider-cmd` by
        [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4881](https://redirect.github.com/gruntwork-io/terragrunt/pull/4881)\n-
        fix: Fixing race condition for `TestTerragruntExcludesFile` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4809](https://redirect.github.com/gruntwork-io/terragrunt/pull/4809)\n-
        fix: Fixing report flags by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4899](https://redirect.github.com/gruntwork-io/terragrunt/pull/4899)\n-
        fix: Fixing `.tf` vs `.tofu` extension parity by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4794](https://redirect.github.com/gruntwork-io/terragrunt/pull/4794)\n-
        chore: Add data.tf to iam directory in refactoring guide by [@&#8203;vit100-trader](https://redirect.github.com/vit100-trader)
        in [#&#8203;4888](https://redirect.github.com/gruntwork-io/terragrunt/pull/4888)\n-
        chore: Refactoring GitHub client into dedicated package by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4879](https://redirect.github.com/gruntwork-io/terragrunt/pull/4879)\n-
        build(deps): bump the js-dependencies group across 1 directory with 7 updates
        by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in
        [#&#8203;4878](https://redirect.github.com/gruntwork-io/terragrunt/pull/4878)\n-
        docs: Update 01-quick-start.mdx by [@&#8203;vit100](https://redirect.github.com/vit100)
        in [#&#8203;4883](https://redirect.github.com/gruntwork-io/terragrunt/pull/4883)\n-
        docs: CI for Terralith to Terragrunt Guide by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
        in [#&#8203;4811](https://redirect.github.com/gruntwork-io/terragrunt/pull/4811)\n-
        docs: Update OG images by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
        in [#&#8203;4889](https://redirect.github.com/gruntwork-io/terragrunt/pull/4889)\n\n####
        New Contributors\n\n- [@&#8203;vit100](https://redirect.github.com/vit100)
        made their first contribution in [#&#8203;4883](https://redirect.github.com/gruntwork-io/terragrunt/pull/4883)\n-
        [@&#8203;vit100-trader](https://redirect.github.com/vit100-trader) made their
        first contribution in [#&#8203;4888](https://redirect.github.com/gruntwork-io/terragrunt/pull/4888)\n\n**Full
        Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.88.0...v0.88.1>\n\n</details>\n\n---\n\n###
        Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time (no
        schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
        **Automerge**: Disabled by config. Please merge this manually once you are
        satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
        tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR and
        you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check
        -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis PR was
        generated by [Mend Renovate](https://mend.io/renovate/). View the [repository
        job log](https://developer.mend.io/github/osism/testbed).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzEuOSIsInVwZGF0ZWRJblZlciI6IjQxLjE1OS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
      change_url: https://github.com/osism/testbed/pull/2777
      child_jobs: []
      commit_id: cc00b91f1e59f2c97d4b224d8bd3e2a12f4e9332
      event_id: 377b2680-ba90-11f0-8abc-3c19f80a50b3
      executor:
        hostname: 521e9411259a
        inventory_file: /var/lib/zuul/builds/67d31d8fa0c345ae91c4bf33c161998b/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/67d31d8fa0c345ae91c4bf33c161998b/work/logs
        result_data_file: /var/lib/zuul/builds/67d31d8fa0c345ae91c4bf33c161998b/work/results.json
        src_root: /var/lib/zuul/builds/67d31d8fa0c345ae91c4bf33c161998b/work/src
        work_root: /var/lib/zuul/builds/67d31d8fa0c345ae91c4bf33c161998b/work
      include_vars: []
      items:
      - branch: main
        change: '2777'
        change_message: "chore(deps): update dependency gruntwork-io/terragrunt to
          v0.93.3\n\nThis PR contains the following updates:\n\n| Package | Update
          | Change |\n|---|---|---|\n| [gruntwork-io/terragrunt](https://redirect.github.com/gruntwork-io/terragrunt)
          | minor | `v0.88.0` -> `v0.93.3` |\n\n---\n\n### Release Notes\n\n<details>\n<summary>gruntwork-io/terragrunt
          (gruntwork-io/terragrunt)</summary>\n\n### [`v0.93.3`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.3)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.93.2...v0.93.3)\n\n####
          \U0001F41B Bug Fixes\n\n##### `hcl validate --inputs` regression on `validation`
          blocks resolved\n\nA bug introduced in `v0.93.1` preventing `hcl validate
          --inputs` from succeeding on OpenTofu/Terraform modules with variables containing
          `validation` blocks. This was caused by an error in the update to OpenTofu/Terraform
          `.tf` file parsing by Terragrunt in the `hcl validate` command.\n\nThat
          bug has been resolved.\n\n#### What's Changed\n\n- fix: Allow validation
          blocks in inputs by [@&#8203;ThisGuyCodes](https://redirect.github.com/ThisGuyCodes)
          in [#&#8203;5063](https://redirect.github.com/gruntwork-io/terragrunt/pull/5063)\n-
          chore: Updating pin to `v0.93.2` for remote references by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5058](https://redirect.github.com/gruntwork-io/terragrunt/pull/5058)\n-
          build(deps): bump tar from 7.5.1 to 7.5.2 in /docs-starlight by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]
          in [#&#8203;5057](https://redirect.github.com/gruntwork-io/terragrunt/pull/5057)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.93.2...v0.93.3>\n\n###
          [`v0.93.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.2)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.93.1...v0.93.2)\n\n####
          \u2728 New Features\n\n##### The `list` command now supports the `dot` fomat\n\nThe
          `list` command can now render its output in the Graphviz [DOT language](https://en.wikipedia.org/wiki/DOT_\\(graph_description_language\\)):\n\n```bash\n$
          terragrunt list --format=dot --dependencies\ndigraph {\n  \"live/dev/vpc\"
          ;\n  \"live/dev/db\" ;\n  \"live/dev/ec2\" ;\n  \"live/dev/db\" -> \"live/dev/vpc\";\n
          \ \"live/dev/ec2\" -> \"live/dev/db\";\n  \"live/dev/ec2\" -> \"live/dev/vpc\";\n
          \ \"live/prod/vpc\" ;\n  \"live/prod/db\" ;\n  \"live/prod/ec2\" ;\n  \"live/prod/db\"
          -> \"live/prod/vpc\";\n  \"live/prod/ec2\" -> \"live/prod/db\";\n  \"live/prod/ec2\"
          -> \"live/prod/vpc\";\n}\n```\n\nThis was previously only possible using
          the [`dag graph`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/dag/graph/)
          command, but that command has been refactored to be an alias for the `list
          --format=dot --dependencies` command, to provide greater flexibility in
          how graphs are rendered in the DOT language. This includes integration with
          the experimental [Filter feature](https://terragrunt.gruntwork.io/docs/features/filter/).\n\nYou
          can learn more about this in the [`list` command documentation](https://terragrunt.gruntwork.io/docs/reference/cli/commands/list/#dot-format)\n\n####
          What's Changed\n\n- feat: Moving `dag graph` command to `list --format=dot`
          by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5013](https://redirect.github.com/gruntwork-io/terragrunt/pull/5013)\n-
          docs: Documenting `dot` format for the `list` command by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5042](https://redirect.github.com/gruntwork-io/terragrunt/pull/5042)\n-
          chore: CICD updates by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;5056](https://redirect.github.com/gruntwork-io/terragrunt/pull/5056)\n-
          chore: Disable experimental tests ignore in CI by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5021](https://redirect.github.com/gruntwork-io/terragrunt/pull/5021)\n-
          chore: Refactor `find` & `list` so that they use a single write instead
          of intermediate writes by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5027](https://redirect.github.com/gruntwork-io/terragrunt/pull/5027)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.93.1...v0.93.2>\n\n###
          [`v0.93.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.93.0...v0.93.1)\n\n####
          \U0001F3CE\uFE0F\_Performance Improvements\n\n- Reduced redundant `--auth-provider-cmd`
          invocations during `run-all`\n- This cuts down on external credential calls
          and lowers authentication overhead for large runs.\n- Updated the unit resolver
          to reuse the configuration parsed during discovery instead of re-parsing
          each `terragrunt.hcl`.\n- This reduces HCL parses and allocations, shortening
          execution time on complex stacks.\n\nIn our internal **\u201CRun all with
          Auth Provider\u201D** benchmark (10 runs, \\~10 ms on auth command), these
          changes reduced average runtime from \\~235 ms to \\~213 ms (about **9%
          faster**) compared to v0.93.0.\n\nBenchmarks of \"BenchmarkDependencyPairwiseOddDependsOnPrevEvenRandomWait\"
          release changes vs main\n\n<p align=\"center\">\n  <img\n    width=\"708\"\n
          \   height=\"380\"\n    alt=\"509178299-daaabc37-3834-40a4-95b3-19a2fb5f2c6d\"\n
          \   src=\"https://github.com/user-attachments/assets/677ed807-b030-4e31-8dd6-1be82fb378bb\"\n
          \ />\n</p>\n\n#### What's Changed\n* perf: unit resolver performance improvements
          by @&#8203;denis2[https://github.com/gruntwork-io/terragrunt/pull/5040](https://redirect.github.com/gruntwork-io/terragrunt/pull/5040)l/5040\n*
          feat: allow input validation with variable in source or version by @&#8203;ThisGuyCod[https://github.com/gruntwork-io/terragrunt/pull/5041](https://redirect.github.com/gruntwork-io/terragrunt/pull/5041)l/5041\n*
          perf: More useful benchmark for determining impact of `hcl fmt` optimization
          by @&#8203;yhakb[https://github.com/gruntwork-io/terragrunt/pull/5026](https://redirect.github.com/gruntwork-io/terragrunt/pull/5026)l/5026\n*
          chore: Add beta releases by @&#8203;Resonance15[https://github.com/gruntwork-io/terragrunt/pull/5052](https://redirect.github.com/gruntwork-io/terragrunt/pull/5052)l/5052\n\n####
          New Contributors\n* @&#8203;ThisGuyCodes made their first contributi[https://github.com/gruntwork-io/terragrunt/pull/5041](https://redirect.github.com/gruntwork-io/terragrunt/pull/5041)l/5041\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.93.0...v0.93.1>\n\n###
          [`v0.93.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.93.0)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.92.1...v0.93.0)\n\n####
          \U0001F6E0\uFE0F Breaking Changes\n\n##### Removal of deprecated HCL attributes\n\nThe
          `skip`, `retryable_errors`, `retry_max_attempts` and `retry_sleep_interval_sec`
          have all been removed from Terragrunt.\n\nThis is the final planned breaking
          change on the road to Terragrunt 1.0 related to removal of deprecated functionality.
          Breaking changes will be minimized before Terragrunt 1.0, but may still
          occur based on user feedback, or based on the need to stabilize parts of
          Terragrunt before 1.0.\n\nIf you are currently using the `skip` attribute,
          you'll want to adjust your usage to leverage the `exclude` block instead:\n\nBefore:\n\n```hcl\n\n#
          terragrunt.hcl\n\nskip = true\n```\n\nAfter:\n\n```hcl\n\n# terragrunt.hcl\n\nexclude
          {\n  if      = true\n  actions = [\"all\"]\n}\n```\n\nIf you are currently
          using the `retryable_errors` attribute, you'll want to adjust your usage
          to leverage the `errors` block instead:\n\nBefore:\n\n```hcl\n\n# terragrunt.hcl\n\nretryable_errors
          = [\n  \".*Error: transient network issue.*\",\n  \".*Error: timeout.*\"\n]\n\nretry_max_attempts
          \    = 3\nretry_sleep_interval_sec = 5\n```\n\nAfter:\n\n```hcl\n\n# terragrunt.hcl\n\nerrors
          {\n  retry \"transient_errors\" {\n    retryable_errors = [\n      \".*Error:
          transient network issue.*\",\n      \".*Error: timeout.*\"\n    ]\n    max_attempts
          = 3\n    sleep_interval_sec = 5\n  }\n}\n```\n\nRead the detailed [migration
          guide](https://terragrunt.gruntwork.io/docs/migrate/deprecated-attributes/)
          for more information.\n\n#### What's Changed\n\n- chore: removal of deprecated
          hcl attributes skip, retryable\\_errors by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;5033](https://redirect.github.com/gruntwork-io/terragrunt/pull/5033)\n-
          bug: empty paths handling in dependencies by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;5016](https://redirect.github.com/gruntwork-io/terragrunt/pull/5016)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.92.1...v0.93.0>\n\n###
          [`v0.92.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.92.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.92.0...v0.92.1)\n\n####
          \u2728 New Features\n\n##### `hcl fmt` supports `--parallelism` for controlling
          concurrency\n\nThe `hcl fmt` command now supports the `--parallelism` flag
          for controlling the number of concurrent files getting formatted. By default,
          the number of concurrent file formats will be determined by the number of
          CPU cores detected on the system running Terragrunt.\n\nSee [`hcl fmt` documentation](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/#parallelism)
          for more information.\n\n#### What's Changed\n\n- feat: Adding support for
          `--parallelism` to `hcl fmt` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5020](https://redirect.github.com/gruntwork-io/terragrunt/pull/5020)\n-
          docs: Documenting support for `--parallelism` flag in `hcl fmt` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5031](https://redirect.github.com/gruntwork-io/terragrunt/pull/5031)\n-
          build(deps): bump the js-dependencies group across 1 directory with 5 updates
          by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in
          [#&#8203;5025](https://redirect.github.com/gruntwork-io/terragrunt/pull/5025)\n-
          build(deps): bump actions/upload-artifact from 4 to 5 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]
          in [#&#8203;5024](https://redirect.github.com/gruntwork-io/terragrunt/pull/5024)\n-
          build(deps): bump actions/download-artifact from 4 to 6 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]
          in [#&#8203;5023](https://redirect.github.com/gruntwork-io/terragrunt/pull/5023)\n-
          chore: Refactoring Component by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5017](https://redirect.github.com/gruntwork-io/terragrunt/pull/5017)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.92.0...v0.92.1>\n\n###
          [`v0.92.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.92.0)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.5...v0.92.0)\n\n####
          \U0001F6E0\uFE0F Breaking Changes\n\n##### Internal `boilerplate` dependency
          upgraded to v0.10.1\n\nThe templating engine ([Boilerplate](https://redirect.github.com/gruntwork-io/boilerplate))
          used by the Terragrunt `catalog` and `scaffold` commands has been upgraded
          to `v0.10.1`.\n\nAs a consequence, the default behavior of scaffolding when
          using the `catalog` and `scaffold` commands has changed to allow for the
          use of Boilerplate hooks and shell commands (see [hooks](https://redirect.github.com/gruntwork-io/boilerplate?tab=readme-ov-file#hooks)
          and [helpers](https://redirect.github.com/gruntwork-io/boilerplate?tab=readme-ov-file#template-helpers)
          in Boilerplate documentation) by default.\n\nNote that Boilerplate will
          ask for permission interactively by default to run said hooks and shell
          commands, and that the interactive prompt will propagate to Terragrunt users.\n\ne.g.\n\n```bash\n$
          terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-shell-commands\n...\n[boilerplate]
          2025/10/24 13:44:56 Shell command details:\n[boilerplate] 2025/10/24 13:44:56
          \  Command: echo\n[boilerplate] 2025/10/24 13:44:56   Arguments: [-n SHELL_EXECUTED_VALUE_1]\n[boilerplate]
          2025/10/24 13:44:56   Working Directory: /var/folders/x3/j561187d7bn7j25xf6hs73wr0000gn/T/scaffold3587887181/.boilerplate\nExecute
          shell command? (y/a/n) :\n```\n\n```bash\n$ terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-hooks\n...\n[boilerplate]
          2025/10/24 13:48:27 Hook details:\n[boilerplate] 2025/10/24 13:48:27   Command:
          echo\n[boilerplate] 2025/10/24 13:48:27   Arguments: [BEFORE_HOOK_EXECUTED]\n[boilerplate]
          2025/10/24 13:48:27   Working Directory: /var/folders/x3/j561187d7bn7j25xf6hs73wr0000gn/T/scaffold4203613613/.boilerplate\nExecute
          hook? (y/a/n) :\n```\n\nWhen using the `--non-interactive` flag, Terragrunt
          will skip prompts and allow hooks and shell commands automatically by default.\n\n```bash\n$
          terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-hooks
          --non-interactive\n...\n[boilerplate] 2025/10/24 13:50:56 Executing hook
          (previously confirmed or all confirmed)\n[boilerplate] 2025/10/24 13:50:56
          Running command: echo BEFORE_HOOK_EXECUTED\nBEFORE_HOOK_EXECUTED\n...\n[boilerplate]
          2025/10/24 13:50:56 Executing hook (previously confirmed or all confirmed)\n[boilerplate]
          2025/10/24 13:50:56 Running command: echo AFTER_HOOK_EXECUTED\nAFTER_HOOK_EXECUTED\n```\n\nIf
          you would like to explicitly prevent this behavior, you can use the `--no-hooks`
          and `--no-shell` flags added to `catalog` and `scaffold` to explicitly prevent
          usage of these features:\n\n```bash\n$ terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-hooks
          --non-interactive --no-hooks --no-shell\n...\n[boilerplate] 2025/10/24 13:53:40
          Hooks are disabled, skipping 1 hook(s)\n...\n[boilerplate] 2025/10/24 13:53:40
          Hooks are disabled, skipping 1 hook(s)\n13:53:40.141 INFO   Running fmt
          on generated code .\n13:53:40.143 INFO   Scaffolding completed\n```\n\n```bash\n$
          terragrunt scaffold github.com/gruntwork-io/terragrunt//test/fixtures/scaffold/with-shell-commands
          --non-interactive --no-hooks --no-shell\n...\n[boilerplate] 2025/10/24 13:54:47
          Shell helpers are disabled. Will not execute shell command '[echo -n SHELL_EXECUTED_VALUE_1]'.
          Returning placeholder value 'replace-me'.\n[boilerplate] 2025/10/24 13:54:47
          Shell helpers are disabled. Will not execute shell command '[echo -n SHELL_EXECUTED_VALUE_2]'.
          Returning placeholder value 'replace-me'.\n[boilerplate] 2025/10/24 13:54:47
          Hooks are disabled, skipping 0 hook(s)\n13:54:47.356 INFO   Running fmt
          on generated code .\n13:54:47.356 INFO   ./terragrunt.hcl was updated\n13:54:47.356
          INFO   Scaffolding completed\n```\n\nYou can also set the `no_hooks` and
          `no_shell` attributes in your `catalog` config to have these set by default
          for all users of your project:\n\n```bash\n\n# root.hcl\ncatalog {\n  no_shell
          = true\n  no_hooks = true\n}\n```\n\n\u26A0\uFE0F Remember that IaC configurations
          are inherently powerful, and should not be trusted blindly. Make sure that
          you review and trust template sources when generating templates using Terragrunt.\n\n####
          \U0001F9EA\_Experiments Updated\n\n##### `filter-flag` experiment now supported
          in  `hcl` commands\n\nThe `--filter` flag is now supported in `hcl` commands
          ([`validate`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/validate/)
          and [`fmt`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/))
          (remember that you must use the [`filter-flag`](https://www.notion.so/v0-91-5-296d8759a6828016aaebe69000855672?pvs=21)
          experiment to try this).\n\ne.g.\n\n```bash\n\n# Filter by path with glob
          patterns\nterragrunt hcl validate --filter './prod/**'\n\n# Filter by name\nterragrunt
          hcl validate --filter 'app*'\n\n# Exclude specific configurations\nterragrunt
          hcl validate --filter '!./test/**'\n\n# Combine filters with intersection
          (refinement)\nterragrunt hcl validate --filter './prod/** | !name=legacy'\n\n#
          Multiple filters with union\nterragrunt hcl validate --filter 'app1' --filter
          'app2'\n```\n\nWhen using the `--filter` flag for `hcl fmt`, filtering applies
          to files instead of units / stacks. Only file path filters are supported
          for the `hcl fmt` command.\n\n```bash\n\n# Format a particular file\nterragrunt
          hcl fmt --filter './prod/app1/terragrunt.hcl'\n\n# Format files matching
          a glob\nterragrunt hcl fmt --filter './prod/**'\n\n# Exclude specific configurations\nterragrunt
          hcl fmt --filter '!./test/**'\n```\n\n#### \U0001F3CE\uFE0F\_Performance
          Improvements\n\n##### `hcl fmt` Performance Improved\n\nThe performance
          of the `hcl fmt` command has been improved substantially.\n\n<img width=\"1160\"
          height=\"609\" alt=\"Screenshot 2025-10-27 at 10 15 56\" src=\"https://github.com/user-attachments/assets/42c16140-53a9-4cbe-8f85-e6593295c323\"
          />\n\nFormatting files is now roughly twice as fast due to parallelization
          of file formatting, and optimizations used in file exclusion.\n\n#### What's
          Changed\n\n- feat: Adding support for `--filter` in `hcl` commands by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5006](https://redirect.github.com/gruntwork-io/terragrunt/pull/5006)\n-
          docs: Documenting the relationship between `--external` and `--dependencies`
          by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5014](https://redirect.github.com/gruntwork-io/terragrunt/pull/5014)\n-
          docs: Documenting support for `--filter` in `hcl` commands by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5010](https://redirect.github.com/gruntwork-io/terragrunt/pull/5010)\n-
          chore: Bumping boilerplate by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4805](https://redirect.github.com/gruntwork-io/terragrunt/pull/4805)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.5...v0.92.0>\n\n###
          [`v0.91.5`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.5)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.4...v0.91.5)\n\n####
          \U0001F9EA\_Experiments Updated\n\n##### **`filter-flag` updated with `run`
          support**\n\nThe `--filter` flag is now supported on the `run` command (remember
          that you must use the [`filter-flag`](https://www.notion.so/v0-91-5-296d8759a6828016aaebe69000855672?pvs=21)
          experiment to try this).\n\ne.g.\n\n```bash\n\n# Filter by path with glob
          patterns\nterragrunt run --all --filter 'prod/**' -- plan\n\n# Filter by
          name\nterragrunt run --all --filter 'app*' -- apply\n\n# Exclude specific
          configurations\nterragrunt run --all --filter '!./test/**' -- plan\n\n#
          Combine filters with intersection (refinement)\nterragrunt run --all --filter
          './prod/** | !name=legacy' -- apply\n\n# Multiple filters with union\nterragrunt
          run --all --filter 'app1' --filter 'app2' -- plan\n\n```\n\nFor more information,
          see the documentation on [Filtering Units](https://terragrunt-docs-git-docs-documenting-support-f-b0699d-gruntwork.vercel.app/docs/reference/cli/commands/run/#filtering-units).\n\nIf
          you give this feature a try, make sure to share your feedback on the [Filter
          Flag RFC](https://redirect.github.com/gruntwork-io/terragrunt/issues/4060)\n\n####
          What's Changed\n\n- feat: Adding support for `--filter` flag in `run` by
          [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4981](https://redirect.github.com/gruntwork-io/terragrunt/pull/4981)\n-
          docs: Documenting support for `--filter` in the `run` command by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5015](https://redirect.github.com/gruntwork-io/terragrunt/pull/5015)\n-
          chore: fixes for periodically failing tests by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;5011](https://redirect.github.com/gruntwork-io/terragrunt/pull/5011)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.4...v0.91.5>\n\n###
          [`v0.91.4`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.4)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.3...v0.91.4)\n\n####
          \U0001F9EA\_Experiments Updated\n\n##### **`filter-flag` updated with `reading=`
          support**\n\nThe `--filter` flag now supports usage of the `reading=` attribute
          to filter on components that read particular shared infrastructure configurations.\n\ne.g.\n\n```bash\nterragrunt
          find --filter 'reading=shared.hcl'\nterragrunt find --filter 'reading=common/*.hcl'
          # Globs supported!\nterragrunt find --filter 'reading=config/**' # Double-wildcard
          globs are required filtering on files nested in subdirectories.\nterragrunt
          find --filter 'reading=config/vars.tfvars'\n```\n\nThis behavior is similar
          to that provided by the [`--queue-include-units-reading`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/run/#queue-include-units-reading)
          flag, with additional support for globs, negation and filter chaining supported
          in the `--filter` flag more generally.\n\nFor more information, see the
          documentation on [Attribute-Based Filtering](https://terragrunt.gruntwork.io/docs/reference/cli/commands/find/#attribute-based-filtering).\n\nIf
          you give this feature a try, make sure to share your feedback on the [Filter
          Flag RFC](https://redirect.github.com/gruntwork-io/terragrunt/issues/4060)\n\n####
          What's Changed\n\n- feat: Adding support for `reading=` in `-filter` by
          [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5004](https://redirect.github.com/gruntwork-io/terragrunt/pull/5004)\n-
          docs: Documenting the new `reading` attribute by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5005](https://redirect.github.com/gruntwork-io/terragrunt/pull/5005)\n-
          docs: documenting how to exclude files from modules by [@&#8203;cebidhem](https://redirect.github.com/cebidhem)
          in [#&#8203;5008](https://redirect.github.com/gruntwork-io/terragrunt/pull/5008)\n-
          docs: Small fixes in the Provider Cache Server documentation by [@&#8203;RafaelWO](https://redirect.github.com/RafaelWO)
          in [#&#8203;4959](https://redirect.github.com/gruntwork-io/terragrunt/pull/4959)\n\n####
          New Contributors\n\n- [@&#8203;cebidhem](https://redirect.github.com/cebidhem)
          made their first contribution in [#&#8203;5008](https://redirect.github.com/gruntwork-io/terragrunt/pull/5008)\n-
          [@&#8203;RafaelWO](https://redirect.github.com/RafaelWO) made their first
          contribution in [#&#8203;4959](https://redirect.github.com/gruntwork-io/terragrunt/pull/4959)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.3...v0.91.4>\n\n###
          [`v0.91.3`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.3)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.2...v0.91.3)\n\n####
          \u2728 New Features\n\n##### `--reading` flag added to the `find` command\n\nThe
          `find` command now supports the `--reading` flag, which allows you to discover
          the shared configurations read by units and stacks when using the `--json`
          format.\n\n```bash\n$ terragrunt find --reading --json\n[\n  {\n    \"type\":
          \"unit\",\n    \"path\": \"aws-account-1\",\n    \"reading\": [\n      \"aws-data.yml\"\n
          \   ]\n  },\n  {\n    \"type\": \"unit\",\n    \"path\": \"aws-account-2\",\n
          \   \"reading\": [\n      \"aws-data.yml\"\n    ]\n  },\n  {\n    \"type\":
          \"unit\",\n    \"path\": \"gcp-project-1\",\n    \"reading\": [\n      \"gcp-data.hcl\"\n
          \   ]\n  }\n]\n```\n\nYou can use this information to drive custom logic
          in your workflows based on the changes related to particular files.\n\ne.g.\n\n```bash\n$
          terragrunt find --reading --json | jq '[.[] | select(.reading[]? | contains(\"aws-data.yml\"))|
          .path]'\n[\n  \"aws-account-1\",\n  \"aws-account-2\"\n]\n\n$ terragrunt
          find --reading --json | jq '[.[] | select(.reading[]? | contains(\"gcp-data.hcl\"))|
          .path]'\n[\n  \"gcp-project-1\"\n]\n```\n\nYou can learn more about the
          `--reading` flag in the [`find` documentation](https://terragrunt.gruntwork.io/docs/reference/cli/commands/find/#reading-files).\n\n####
          \U0001F41B Bug Fixes\n\n##### Empty stacks no longer throw errors\n\nPreviously,
          a bug in the logic used for making sure that users didn\u2019t accidentally
          run on empty stacks resulted in users getting a non-zero exit code when
          all units in a stack were excluded (e.g. via the `exclude` block).\n\nThat
          bug has been fixed.\n\n##### Dependency outputs can now be used in generate
          blocks\n\nPreviously, a bug in the way HCL parsing was done during discovery
          resulted in errors being thrown for users when dependency outputs were used
          in `generate` blocks. That error has since been resolved.\n\nThat bug has
          been fixed.\n\n#### What's Changed\n\n- feat: Adding reading support in
          `find` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;5002](https://redirect.github.com/gruntwork-io/terragrunt/pull/5002)\n-
          fix: Removing filter enabled check on empty stacks by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4992](https://redirect.github.com/gruntwork-io/terragrunt/pull/4992)\n-
          fix: reference of dependency outputs in generate by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4994](https://redirect.github.com/gruntwork-io/terragrunt/pull/4994)\n-
          docs: Documenting new `-reading` flag for `find` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5003](https://redirect.github.com/gruntwork-io/terragrunt/pull/5003)\n-
          docs: Fixing --source-map explanation by [@&#8203;atheiman](https://redirect.github.com/atheiman)
          in [#&#8203;4997](https://redirect.github.com/gruntwork-io/terragrunt/pull/4997)\n-
          docs: Fixing `Filters` docs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4996](https://redirect.github.com/gruntwork-io/terragrunt/pull/4996)\n-
          chore: Tracking DAG nodes in components by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4998](https://redirect.github.com/gruntwork-io/terragrunt/pull/4998)\n-
          chore: Tracking reads in components by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5000](https://redirect.github.com/gruntwork-io/terragrunt/pull/5000)\n-
          chore: Updating language in discovery commands by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;5001](https://redirect.github.com/gruntwork-io/terragrunt/pull/5001)\n-
          chore: Using a standard shell string parsing library instead of handling
          it ourselves by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in
          [#&#8203;4991](https://redirect.github.com/gruntwork-io/terragrunt/pull/4991)\n-
          build(deps): bump the js-dependencies group across 1 directory with 5 updates
          by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in
          [#&#8203;4993](https://redirect.github.com/gruntwork-io/terragrunt/pull/4993)\n-
          build(deps): bump vite from 6.3.6 to 6.4.1 in /docs-starlight by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot]
          in [#&#8203;4999](https://redirect.github.com/gruntwork-io/terragrunt/pull/4999)\n\n####
          New Contributors\n\n- [@&#8203;atheiman](https://redirect.github.com/atheiman)
          made their first contribution in [#&#8203;4997](https://redirect.github.com/gruntwork-io/terragrunt/pull/4997)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.2...v0.91.3>\n\n###
          [`v0.91.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.2)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.1...v0.91.2)\n\n####
          \U0001F9EA Experiments Introduced\n\n##### `filter-flag` introduced\n\nA
          new experiment named [filter-flag](https://terragrunt.gruntwork.io/docs/reference/experiments/#filter-flag)
          has been introduced, allowing for experimental usage of the new `--filter`
          flag described in [RFC #&#8203;4060](https://redirect.github.com/gruntwork-io/terragrunt/issues/4060).
          The `filter-flag` experiment is incomplete, and minimal support for the
          `--filter` flag has been added exclusively to the [`find`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/find/)
          and [`list`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/list/)
          commands.\n\nThe filter flag allows for sophisticated querying of particular
          Terragrunt stacks and units in a way that is currently only possible using
          a combination of [`\u2014queue-`](https://terragrunt.gruntwork.io/docs/features/run-queue/#controlling-the-queue)
          prefixed flags.\n\nExample filter usage might look like the following:\n\n```bash\n$
          terragrunt find --filter './prod/** | name=web'\nprod/services/web\n```\n\n>
          \\[!IMPORTANT]\n>\n> While the `filter-flag` experiment is active, you will
          need to enable the `filter-flag` experiment for any command that uses the
          `filter-flag`. See [Controlling Experiment Mode](https://terragrunt-docs-ics3biiml-gruntwork.vercel.app/docs/reference/experiments/#controlling-experiment-mode)
          for more details.\n>\n> e.g.\n>\n> ```bash\n> terragrunt find --experiment
          filter-flag --filter './prod/** | name=web'\n> ```\n\nYou can learn more
          about filters, including documentation on the syntax and examples of each
          type of filter in the [dedicated feature documentation for filters](https://terragrunt.gruntwork.io/docs/features/filter/).\n\n####
          What's Changed\n\n- feat: Introduce `filter-flag` experiment by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4969](https://redirect.github.com/gruntwork-io/terragrunt/pull/4969)\n-
          chore: Adding checkbox for reproduction by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4980](https://redirect.github.com/gruntwork-io/terragrunt/pull/4980)\n-
          docs: Use special dark/light mode for Terragrunt logos by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4975](https://redirect.github.com/gruntwork-io/terragrunt/pull/4975)\n-
          docs: Fixes overflow issue on the right sidebar by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4972](https://redirect.github.com/gruntwork-io/terragrunt/pull/4972)\n-
          docs: Documenting `filter-flag` experiment by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4973](https://redirect.github.com/gruntwork-io/terragrunt/pull/4973)\n-
          docs: Fixing Flag Card icons by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4974](https://redirect.github.com/gruntwork-io/terragrunt/pull/4974)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.1...v0.91.2>\n\n###
          [`v0.91.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.91.0...v0.91.1)\n\n####
          \U0001F9F9 Chores\n\n##### Updated dependencies\n\nUpgraded multiple Golang
          dependencies to the latest stable versions:\n\n- Updated cloud.google.com/go/storage
          to v1.57.0\n- Updated github.com/aws/aws-sdk-go-v2 to v1.39.2\n- Updated
          github.com/getsops/sops/v3 to v3.11.0\n- Updated github.com/gofrs/flock
          to v0.13.0\n- Updated github.com/gruntwork-io/terratest to v0.51.0\n- Updated
          github.com/hashicorp/go-getter to v1.8.2\n- Updated golang.org/x/mod to
          v0.29.0\n- Updated golang.org/x/oauth2 to v0.32.0\n- Updated golang.org/x/sys
          to v0.37.0\n- Updated golang.org/x/term to v0.36.0\n- Updated golang.org/x/text
          to v0.30.0\n- Updated google.golang.org/api to v0.252.0\n- Updated google.golang.org/grpc
          to v1.76.0\n- Updated google.golang.org/protobuf to v1.36.10\n\n#### What's
          Changed\n\n- chore: Undo Starlight patch by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4964](https://redirect.github.com/gruntwork-io/terragrunt/pull/4964)\n-
          chore: Bump Bun dependencies by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4965](https://redirect.github.com/gruntwork-io/terragrunt/pull/4965)\n-
          chore: Refactor out `component` package by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4963](https://redirect.github.com/gruntwork-io/terragrunt/pull/4963)\n-
          feat: Adding `filter` package by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4958](https://redirect.github.com/gruntwork-io/terragrunt/pull/4958)\n-
          chore: multiple dependencies update by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4968](https://redirect.github.com/gruntwork-io/terragrunt/pull/4968)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.91.0...v0.91.1>\n\n###
          [`v0.91.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.91.0)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.90.2...v0.91.0)\n\nRemoval
          of behavior where inputs are read from dependencies\n\n### \U0001F6E0\uFE0F
          Breaking Changes\n\n##### **Removal of behavior where inputs are read from
          dependencies**\n\nTerragrunt no longer exposes **dependency inputs** as
          accessible values.\n\nThis change improves performance and simplifies dependency
          handling by removing a feature that significantly slowed configuration parsing
          due to a requirement for recursive parsing of dependencies of dependencies
          for every dependent.\n\nIf your configurations currently access dependency
          inputs like this:\n\n```hcl\ndependency \"foo\" {\n  config_path = \"../foo\"\n}\n\ninputs
          = {\n  my_input = dependency.foo.inputs.an_input_from_foo\n}\n\n```\n\nYou\u2019ll
          need to update them to reference **outputs** instead:\n\n```hcl\ndependency
          \"foo\" {\n  config_path = \"../foo\"\n}\n\ninputs = {\n  my_input = dependency.foo.outputs.an_output_from_foo\n}\n\n```\n\nAccessing
          outputs remains the supported and recommended way to share data between
          modules.\n\n#### What's Changed\n\n- feat: removal of behavior where inputs
          are read from dependencies by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4960](https://redirect.github.com/gruntwork-io/terragrunt/pull/4960)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.90.2...v0.91.0>\n\n###
          [`v0.90.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.90.2)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.90.1...v0.90.2)\n\n####
          \u2728 New Features\n\n##### Added `--terragrunt-no-cache` flag for `run_cmd`\n\nThe
          `run_cmd` command now supports a new flag, `--terragrunt-no-cache`, which
          disables caching of command execution output.\n\nThis option is useful when
          you want to ensure that each command run produces fresh results, especially
          in dynamic environments or when working with frequently changing external
          data.\n\n#### What's Changed\n\n- feat: add `--terragrunt-no-cache` parameter
          for `run_cmd` by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4951](https://redirect.github.com/gruntwork-io/terragrunt/pull/4951)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.90.1...v0.90.2>\n\n###
          [`v0.90.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.90.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.90.0...v0.90.1)\n\n####
          \u2728 New Features\n\n##### `hcl fmt` now supports `--queue` flags\n\nThe
          `hcl fmt` command now supports `--queue-` prefixed flags (e.g. [`--queue-exclude-dir`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/#queue-exclude-dir)).\n\n####
          \U0001F41B Bug Fixes\n\n##### Discovery in `run` command discovers hidden
          directories\n\nWhen discovering units for the `run` command, Terragrunt
          will now search through (most) hidden directories.\n\nIt will still avoid
          performing discovery in the following hidden directories:\n\n- `.git`\n-
          `.terraform`\n- `.terragrunt-cache`\n\nTo manually force or suppress discovery,
          use [`--queue-include-dir`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/#queue-exclude-dir)
          and [`--queue-exclude-dir`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/hcl/fmt/#queue-exclude-dir)
          respectively.\n\n##### `--queue-ignore-errors` no longer breaks DAG resolution\n\nA
          bug in the implementation of [`--queue-ignore-errors`](https://terragrunt.gruntwork.io/docs/reference/cli/commands/run/#queue-ignore-errors)
          resulted in the flag also preventing the proper resolution of the [Directed
          Acyclic Graph (DAG)](https://terragrunt.gruntwork.io/docs/getting-started/terminology/#directed-acyclic-graph-dag)
          when suppressing errors.\n\nThis has been fixed.\n\n##### `--tf-path` respected
          through dependencies\n\nA bug in the precedence resolution of the [`terraform_binary`
          HCL attribute](https://terragrunt.gruntwork.io/docs/reference/hcl/attributes/#terraform_binary)
          and the [`--tf-path` flag](https://terragrunt.gruntwork.io/docs/reference/cli/commands/run/#tf-path)
          resulted in the default value of `terraform_binary` taking affect (`tofu`
          if both `tofu` and `terraform` are installed) when `terraform_binary` was
          not specified in dependencies.\n\nThis bug has been resolved, and the `--tf-path`
          flag will be respected in dependencies as well.\n\n##### Spurious errors
          resolved in `read_terragrunt_config()`\n\nA bug caused the [`read_terragrunt_config()`](https://terragrunt.gruntwork.io/docs/reference/hcl/functions/#read_terragrunt_config)
          HCL function to return spurious errors when used in a configuration parsed
          during the discovery phase of configuration resolution of a run.\n\nThis
          has been fixed.\n\n#### What's Changed\n\n- feat: Adding queue flags to
          `hcl fmt` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4950](https://redirect.github.com/gruntwork-io/terragrunt/pull/4950)\n-
          fix: discovery of hidden directories by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4945](https://redirect.github.com/gruntwork-io/terragrunt/pull/4945)\n-
          fix: Fixing `--queue-ignore-errors` resulting in ignored DAG order by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4953](https://redirect.github.com/gruntwork-io/terragrunt/pull/4953)\n-
          fix: Ensure `--tf-path` is used in dependencies by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4955](https://redirect.github.com/gruntwork-io/terragrunt/pull/4955)\n-
          fix: Prevent parse errors when using `read_terragrunt_config()` during discovery
          by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4956](https://redirect.github.com/gruntwork-io/terragrunt/pull/4956)\n-
          docs: Updating docs for `--out-dir` and `--json-out-dir` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4957](https://redirect.github.com/gruntwork-io/terragrunt/pull/4957)\n-
          docs: Pipelines won't bite landing page by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4948](https://redirect.github.com/gruntwork-io/terragrunt/pull/4948)\n-
          docs: Fixing form by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4954](https://redirect.github.com/gruntwork-io/terragrunt/pull/4954)\n-
          chore: failing tests fixes by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4944](https://redirect.github.com/gruntwork-io/terragrunt/pull/4944)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.90.0...v0.90.1>\n\n###
          [`v0.90.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.90.0)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.4...v0.90.0)\n\nRemoval
          of deprecated commands\n\nThis is the next step on the road to Terragrunt
          1.0, completing the Terragrunt CLI Redesign. Read the [CLI Redesign migration
          guide](https://terragrunt.gruntwork.io/docs/migrate/cli-redesign/) for guidance
          on adapting to these breaking changes.\n\nWe anticipate no further breaking
          changes to the CLI prior to the release of Terragrunt 1.0, where the CLI
          will remain stable without breaking changes until at least Terragrunt 2.0.\n\nFor
          a full list of deprecated features that will be removed prior to the release
          of Terragrunt 1.0, see the [removal schedule](https://redirect.github.com/gruntwork-io/terragrunt/issues/3535).\n\n###
          \U0001F6E0\uFE0F Breaking Changes\n\n##### Removal of Deprecated Commands\n\nThe
          following deprecated CLI commands have been removed to streamline the command
          line API ahead of 1.0.\n\nUse the new commands introduced during the CLI
          redesign that replace them:\n\n- `terragrunt terragrunt-info` \u2192 `terragrunt
          info print`\n- `terragrunt hclfmt` \u2192 `terragrunt hcl fmt`\n- `terragrunt
          hclvalidate` \u2192 `terragrunt hcl validate`\n- `terragrunt validate-inputs`
          \u2192 `terragrunt hcl validate --inputs`\n- `terragrunt render-json` \u2192
          `terragrunt render --json -w`\n- `terragrunt graph-dependencies` \u2192
          `terragrunt dag graph`\n- `terragrunt output-module-groups` \u2192 `terragrunt
          find --dag --json`\n\n#### What's Changed\n\n- chore: removal of deprecated
          commands by [@&#8203;denis256](https://redirect.github.com/denis256) in
          [#&#8203;4918](https://redirect.github.com/gruntwork-io/terragrunt/pull/4918)\n-
          chore: Removal of output-module-groups cli command by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4937](https://redirect.github.com/gruntwork-io/terragrunt/pull/4937)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.4...v0.90.0>\n\n###
          [`v0.89.4`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.4)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.3...v0.89.4)\n\n####
          \U0001F41B\_Bug Fixes\n\n##### Collection of exit code for `-detailed-exitcode`
          behavior in `run --all`\n\nImproved run-all plan -detailed-exitcode aggregation
          to correctly return 2 when any unit has drift, even if another unit hits
          a retryable error.\n\n#### What's Changed\n\n- fix(run-all): corrected -detailed-exitcode
          aggregation  by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4932](https://redirect.github.com/gruntwork-io/terragrunt/pull/4932)\n-
          docs: stack generate documentation update by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4930](https://redirect.github.com/gruntwork-io/terragrunt/pull/4930)\n-
          docs: Form updates by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4911](https://redirect.github.com/gruntwork-io/terragrunt/pull/4911)\n-
          docs: Fixing up signup form by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4933](https://redirect.github.com/gruntwork-io/terragrunt/pull/4933)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.3...v0.89.4>\n\n###
          [`v0.89.3`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.3)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.2...v0.89.3)\n\n####
          What's Changed\n\n- fix: Added missing flags to the `hcl` command by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4927](https://redirect.github.com/gruntwork-io/terragrunt/pull/4927)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.2...v0.89.3>\n\n###
          [`v0.89.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.2)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.1...v0.89.2)\n\n####
          What's Changed\n\n- fix: Fixing Terralith to Terragrunt integration test
          by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4909](https://redirect.github.com/gruntwork-io/terragrunt/pull/4909)\n-
          fix: Fixing external dependency resolution by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4926](https://redirect.github.com/gruntwork-io/terragrunt/pull/4926)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.1...v0.89.2>\n\n###
          [`v0.89.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.89.0...v0.89.1)\n\n####
          What's Changed\n\n- fix: Fixed bug where discovery warned that outputs were
          mocked. by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4923](https://redirect.github.com/gruntwork-io/terragrunt/pull/4923)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.89.0...v0.89.1>\n\n###
          [`v0.89.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.89.0)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.88.1...v0.89.0)\n\nSeveral
          experimental features have been made generally available.\n\n#### \U0001F6E0\uFE0F
          Breaking Changes\n\n##### Runner-pool\n\nTerragrunt now supports the Runner
          Pool concurrency model, replacing the traditional group-based concurrency
          model with a dynamic scheduler by default.\n\nInstead of waiting for groups
          of units that block downstream units to complete their runs, the Runner
          Pool executes each unit as soon as its dependencies (or dependents for destroys)
          are resolved. This improves efficiency, reduces bottlenecks, and limits
          the impact of individual failures on the run of the entire queue.\n\n#####
          \u2728New Features\n\n- Dynamically schedules Units as soon as dependencies
          (or dependents) are satisfied\n- Improves throughput for large stacks\n-
          Provides better fault-isolation for failed units\n\n<p align=\"center\">\n\n<img
          width=\"789\" height=\"480\" alt=\"image\" src=\"https://github.com/user-attachments/assets/7d88e437-2d5f-4477-86eb-0733b7062f0d\"
          />\n\n</p>\n\n##### Report\n\nThe experimental Report feature is now stable
          and enabled by default.\n\nEvery Terragrunt run will now emit a short summary
          at the end of the run that looks like the following by default:\n\n```bash\n$
          terragrunt run --all plan\n\n# Omitted for brevity...\n\n\u276F\u276F Run
          Summary  3 units  62ms\n   \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n
          \  Succeeded    3\n\n```\n\nThis summary will give a high-level overview
          of the run results for units in a given Terragrunt run.\n\nYou can optionally
          request a CSV or JSON report of runs as well, giving you detailed insights
          as to the performance of each run using the `--report` flag:\n\n```bash\nterragrunt
          run --all plan --report-schema-file report.schema.csv\n```\n\n```csv\nName,Started,Ended,Result,Reason,Cause\nfirst-exclude,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,excluded,exclude
          block,\nsecond-exclude,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,excluded,exclude
          block,\nfirst-failure,2025-06-05T16:28:41-04:00,2025-06-05T16:28:42-04:00,failed,run
          error,\nfirst-success,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,succeeded,,\nsecond-failure,2025-06-05T16:28:41-04:00,2025-06-05T16:28:42-04:00,failed,run
          error,\nsecond-success,2025-06-05T16:28:41-04:00,2025-06-05T16:28:41-04:00,succeeded,,\nsecond-early-exit,2025-06-05T16:28:42-04:00,2025-06-05T16:28:42-04:00,early
          exit,run error,\nfirst-early-exit,2025-06-05T16:28:42-04:00,2025-06-05T16:28:42-04:00,early
          exit,run error,\n```\n\n```bash\nterragrunt run --all plan --report-schema-file
          report.schema.json\n```\n\n```json\n[\n  {\n    \"Name\": \"first-exclude\",\n
          \   \"Started\": \"2025-06-05T16:28:41-04:00\",\n    \"Ended\": \"2025-06-05T16:28:41-04:00\",\n
          \   \"Result\": \"excluded\",\n    \"Reason\": \"exclude block\"\n  },\n
          \ {\n    \"Name\": \"first-success\",\n    \"Started\": \"2025-06-05T16:28:41-04:00\",\n
          \   \"Ended\": \"2025-06-05T16:28:41-04:00\",\n    \"Result\": \"succeeded\"\n
          \ }\n]\n\n```\n\n##### \u2728New Features\n\n- Generates detailed run reports
          (CSV and JSON formats supported)\n- Displays run summaries directly in the
          CLI output\n- Allows disabling summaries if desired\n\nTo learn more about
          the Run Report feature, read the dedicated guide on Run Reports [here](https://terragrunt.gruntwork.io/docs/features/run-report/).\n\n#####
          \U0001F527 Migration Guide\n\nNo action is required\n\nTo disable summary
          output explicitly, use `--disable-report-summary`:\n\n```bash\nterragrunt
          run --all plan --disable-report-summary\n```\n\n##### Auto OpenTofu Provider
          Cache Directory\n\nTerragrunt now automatically configures OpenTofu\u2019s
          **native provider caching mechanism** by default when running with OpenTofu
          > = 1.10.\n\nNote that if you are using Terraform, you will not be able
          to take advantage of this new feature.\n\nThis feature is only possible
          in OpenTofu due to the hard work and coordination with the OpenTofu team
          to ensure that concurrent access to the provider cache directory is safe
          for all OpenTofu users, regardless of whether they use Terragrunt.\n\n<p
          align=\"center\">\n<img width=\"912\" height=\"486\" alt=\"Screenshot 2025-06-25
          at 12 38 05\u202FPM\" src=\"https://github.com/user-attachments/assets/214cff8d-4fbb-4e70-aa96-c026e91038d7\"
          />\n</p>\n\n##### \u2728New Features\n\n- Automatically sets the `TF_PLUGIN_CACHE_DIR`
          environment variable\n- Uses OpenTofu\u2019s native provider cache instead
          of Terragrunt\u2019s internal cache server\n- Provides improved concurrency
          safety in multi-runner and CI environments\n\n##### \U0001F527 Migration
          Guide\n\nNo action is required if you\u2019re running OpenTofu > = 1.10
          \u2014 provider caching will be configured automatically.\n\nTo disable
          this behavior, use the `--no-auto-provider-cache-dir` flag:\n\n```bash\nterragrunt
          run --all apply --no-auto-provider-cache-dir\n```\n\n##### \u2764\uFE0F
          Special Thanks\n\nThis feature merely automatically activates a feature
          that was introduced in OpenTofu 1.10 by the hard work of [@&#8203;cam72cam](https://redirect.github.com/cam72cam)
          on the OpenTofu team.\n\nThe OpenTofu project takes community feedback seriously
          (including the maintainers of this project), and introduced the ability
          to concurrently access a shared provider cache directory as a feature in
          OpenTofu to make *all users* of OpenTofu better off. Maintainers of Terragrunt
          will continue to collaborate with the OpenTofu team to ensure that using
          Terragrunt with OpenTofu is the easiest way to guarantee the best experience
          managing IaC at scale.\n\n#### What's Changed\n\n- chore: Marked as completed
          runner-pool, reports and provider cache by [@&#8203;denis256](https://redirect.github.com/denis256)
          in [#&#8203;4900](https://redirect.github.com/gruntwork-io/terragrunt/pull/4900)\n-
          fix: Properly sets discovery context so that `plan -destroy` and `apply
          -destroy` work right by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4887](https://redirect.github.com/gruntwork-io/terragrunt/pull/4887)\n-
          docs: Implement view plans button by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4890](https://redirect.github.com/gruntwork-io/terragrunt/pull/4890)\n-
          docs: Visual updates to form by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4902](https://redirect.github.com/gruntwork-io/terragrunt/pull/4902)\n-
          docs: Fix docs flag name by [@&#8203;rubensf](https://redirect.github.com/rubensf)
          in [#&#8203;4908](https://redirect.github.com/gruntwork-io/terragrunt/pull/4908)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.88.1...v0.89.0>\n\n###
          [`v0.88.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.88.1)\n\n[Compare
          Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.88.0...v0.88.1)\n\n####
          What's Changed\n\n- feat: Use better parsing for `--auth-provider-cmd` by
          [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [#&#8203;4881](https://redirect.github.com/gruntwork-io/terragrunt/pull/4881)\n-
          fix: Fixing race condition for `TestTerragruntExcludesFile` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4809](https://redirect.github.com/gruntwork-io/terragrunt/pull/4809)\n-
          fix: Fixing report flags by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4899](https://redirect.github.com/gruntwork-io/terragrunt/pull/4899)\n-
          fix: Fixing `.tf` vs `.tofu` extension parity by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4794](https://redirect.github.com/gruntwork-io/terragrunt/pull/4794)\n-
          chore: Add data.tf to iam directory in refactoring guide by [@&#8203;vit100-trader](https://redirect.github.com/vit100-trader)
          in [#&#8203;4888](https://redirect.github.com/gruntwork-io/terragrunt/pull/4888)\n-
          chore: Refactoring GitHub client into dedicated package by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4879](https://redirect.github.com/gruntwork-io/terragrunt/pull/4879)\n-
          build(deps): bump the js-dependencies group across 1 directory with 7 updates
          by [@&#8203;dependabot](https://redirect.github.com/dependabot)\\[bot] in
          [#&#8203;4878](https://redirect.github.com/gruntwork-io/terragrunt/pull/4878)\n-
          docs: Update 01-quick-start.mdx by [@&#8203;vit100](https://redirect.github.com/vit100)
          in [#&#8203;4883](https://redirect.github.com/gruntwork-io/terragrunt/pull/4883)\n-
          docs: CI for Terralith to Terragrunt Guide by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)
          in [#&#8203;4811](https://redirect.github.com/gruntwork-io/terragrunt/pull/4811)\n-
          docs: Update OG images by [@&#8203;karlcarstensen](https://redirect.github.com/karlcarstensen)
          in [#&#8203;4889](https://redirect.github.com/gruntwork-io/terragrunt/pull/4889)\n\n####
          New Contributors\n\n- [@&#8203;vit100](https://redirect.github.com/vit100)
          made their first contribution in [#&#8203;4883](https://redirect.github.com/gruntwork-io/terragrunt/pull/4883)\n-
          [@&#8203;vit100-trader](https://redirect.github.com/vit100-trader) made
          their first contribution in [#&#8203;4888](https://redirect.github.com/gruntwork-io/terragrunt/pull/4888)\n\n**Full
          Changelog**: <https://github.com/gruntwork-io/terragrunt/compare/v0.88.0...v0.88.1>\n\n</details>\n\n---\n\n###
          Configuration\n\n\U0001F4C5 **Schedule**: Branch creation - At any time
          (no schedule defined), Automerge - At any time (no schedule defined).\n\n\U0001F6A6
          **Automerge**: Disabled by config. Please merge this manually once you are
          satisfied.\n\n\u267B **Rebasing**: Whenever PR becomes conflicted, or you
          tick the rebase/retry checkbox.\n\n\U0001F515 **Ignore**: Close this PR
          and you won't be reminded about this update again.\n\n---\n\n - [ ] <!--
          rebase-check -->If you want to rebase/retry this PR, check this box\n\n---\n\nThis
          PR was generated by [Mend Renovate](https://mend.io/renovate/). View the
          [repository job log](https://developer.mend.io/github/osism/testbed).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xMzEuOSIsInVwZGF0ZWRJblZlciI6IjQxLjE1OS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
        change_url: https://github.com/osism/testbed/pull/2777
        commit_id: cc00b91f1e59f2c97d4b224d8bd3e2a12f4e9332
        patchset: cc00b91f1e59f2c97d4b224d8bd3e2a12f4e9332
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          name: osism/testbed
          short_name: testbed
          src_dir: src/github.com/osism/testbed
        topic: null
      job: yamllint
      jobtags: []
      max_attempts: 3
      message: Y2hvcmUoZGVwcyk6IHVwZGF0ZSBkZXBlbmRlbmN5IGdydW50d29yay1pby90ZXJyYWdydW50IHRvIHYwLjkzLjMKClRoaXMgUFIgY29udGFpbnMgdGhlIGZvbGxvd2luZyB1cGRhdGVzOgoKfCBQYWNrYWdlIHwgVXBkYXRlIHwgQ2hhbmdlIHwKfC0tLXwtLS18LS0tfAp8IFtncnVudHdvcmstaW8vdGVycmFncnVudF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50KSB8IG1pbm9yIHwgYHYwLjg4LjBgIC0+IGB2MC45My4zYCB8CgotLS0KCiMjIyBSZWxlYXNlIE5vdGVzCgo8ZGV0YWlscz4KPHN1bW1hcnk+Z3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQgKGdydW50d29yay1pby90ZXJyYWdydW50KTwvc3VtbWFyeT4KCiMjIyBbYHYwLjkzLjNgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjkzLjMpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjkzLjIuLi52MC45My4zKQoKIyMjIyDwn5CbIEJ1ZyBGaXhlcwoKIyMjIyMgYGhjbCB2YWxpZGF0ZSAtLWlucHV0c2AgcmVncmVzc2lvbiBvbiBgdmFsaWRhdGlvbmAgYmxvY2tzIHJlc29sdmVkCgpBIGJ1ZyBpbnRyb2R1Y2VkIGluIGB2MC45My4xYCBwcmV2ZW50aW5nIGBoY2wgdmFsaWRhdGUgLS1pbnB1dHNgIGZyb20gc3VjY2VlZGluZyBvbiBPcGVuVG9mdS9UZXJyYWZvcm0gbW9kdWxlcyB3aXRoIHZhcmlhYmxlcyBjb250YWluaW5nIGB2YWxpZGF0aW9uYCBibG9ja3MuIFRoaXMgd2FzIGNhdXNlZCBieSBhbiBlcnJvciBpbiB0aGUgdXBkYXRlIHRvIE9wZW5Ub2Z1L1RlcnJhZm9ybSBgLnRmYCBmaWxlIHBhcnNpbmcgYnkgVGVycmFncnVudCBpbiB0aGUgYGhjbCB2YWxpZGF0ZWAgY29tbWFuZC4KClRoYXQgYnVnIGhhcyBiZWVuIHJlc29sdmVkLgoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSBmaXg6IEFsbG93IHZhbGlkYXRpb24gYmxvY2tzIGluIGlucHV0cyBieSBbQCYjODIwMztUaGlzR3V5Q29kZXNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9UaGlzR3V5Q29kZXMpIGluIFsjJiM4MjAzOzUwNjNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzUwNjMpCi0gY2hvcmU6IFVwZGF0aW5nIHBpbiB0byBgdjAuOTMuMmAgZm9yIHJlbW90ZSByZWZlcmVuY2VzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbIyYjODIwMzs1MDU4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC81MDU4KQotIGJ1aWxkKGRlcHMpOiBidW1wIHRhciBmcm9tIDcuNS4xIHRvIDcuNS4yIGluIC9kb2NzLXN0YXJsaWdodCBieSBbQCYjODIwMztkZXBlbmRhYm90XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVwZW5kYWJvdClcW2JvdF0gaW4gWyMmIzgyMDM7NTA1N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNTA1NykKCioqRnVsbCBDaGFuZ2Vsb2cqKjogPGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjkzLjIuLi52MC45My4zPgoKIyMjIFtgdjAuOTMuMmBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuOTMuMikKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuOTMuMS4uLnYwLjkzLjIpCgojIyMjIOKcqCBOZXcgRmVhdHVyZXMKCiMjIyMjIFRoZSBgbGlzdGAgY29tbWFuZCBub3cgc3VwcG9ydHMgdGhlIGBkb3RgIGZvbWF0CgpUaGUgYGxpc3RgIGNvbW1hbmQgY2FuIG5vdyByZW5kZXIgaXRzIG91dHB1dCBpbiB0aGUgR3JhcGh2aXogW0RPVCBsYW5ndWFnZV0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRE9UX1woZ3JhcGhfZGVzY3JpcHRpb25fbGFuZ3VhZ2VcKSk6CgpgYGBiYXNoCiQgdGVycmFncnVudCBsaXN0IC0tZm9ybWF0PWRvdCAtLWRlcGVuZGVuY2llcwpkaWdyYXBoIHsKICAibGl2ZS9kZXYvdnBjIiA7CiAgImxpdmUvZGV2L2RiIiA7CiAgImxpdmUvZGV2L2VjMiIgOwogICJsaXZlL2Rldi9kYiIgLT4gImxpdmUvZGV2L3ZwYyI7CiAgImxpdmUvZGV2L2VjMiIgLT4gImxpdmUvZGV2L2RiIjsKICAibGl2ZS9kZXYvZWMyIiAtPiAibGl2ZS9kZXYvdnBjIjsKICAibGl2ZS9wcm9kL3ZwYyIgOwogICJsaXZlL3Byb2QvZGIiIDsKICAibGl2ZS9wcm9kL2VjMiIgOwogICJsaXZlL3Byb2QvZGIiIC0+ICJsaXZlL3Byb2QvdnBjIjsKICAibGl2ZS9wcm9kL2VjMiIgLT4gImxpdmUvcHJvZC9kYiI7CiAgImxpdmUvcHJvZC9lYzIiIC0+ICJsaXZlL3Byb2QvdnBjIjsKfQpgYGAKClRoaXMgd2FzIHByZXZpb3VzbHkgb25seSBwb3NzaWJsZSB1c2luZyB0aGUgW2BkYWcgZ3JhcGhgXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL2NsaS9jb21tYW5kcy9kYWcvZ3JhcGgvKSBjb21tYW5kLCBidXQgdGhhdCBjb21tYW5kIGhhcyBiZWVuIHJlZmFjdG9yZWQgdG8gYmUgYW4gYWxpYXMgZm9yIHRoZSBgbGlzdCAtLWZvcm1hdD1kb3QgLS1kZXBlbmRlbmNpZXNgIGNvbW1hbmQsIHRvIHByb3ZpZGUgZ3JlYXRlciBmbGV4aWJpbGl0eSBpbiBob3cgZ3JhcGhzIGFyZSByZW5kZXJlZCBpbiB0aGUgRE9UIGxhbmd1YWdlLiBUaGlzIGluY2x1ZGVzIGludGVncmF0aW9uIHdpdGggdGhlIGV4cGVyaW1lbnRhbCBbRmlsdGVyIGZlYXR1cmVdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9mZWF0dXJlcy9maWx0ZXIvKS4KCllvdSBjYW4gbGVhcm4gbW9yZSBhYm91dCB0aGlzIGluIHRoZSBbYGxpc3RgIGNvbW1hbmQgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL3JlZmVyZW5jZS9jbGkvY29tbWFuZHMvbGlzdC8jZG90LWZvcm1hdCkKCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gZmVhdDogTW92aW5nIGBkYWcgZ3JhcGhgIGNvbW1hbmQgdG8gYGxpc3QgLS1mb3JtYXQ9ZG90YCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NTAxM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNTAxMykKLSBkb2NzOiBEb2N1bWVudGluZyBgZG90YCBmb3JtYXQgZm9yIHRoZSBgbGlzdGAgY29tbWFuZCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NTA0Ml0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNTA0MikKLSBjaG9yZTogQ0lDRCB1cGRhdGVzIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFsjJiM4MjAzOzUwNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzUwNTYpCi0gY2hvcmU6IERpc2FibGUgZXhwZXJpbWVudGFsIHRlc3RzIGlnbm9yZSBpbiBDSSBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NTAyMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNTAyMSkKLSBjaG9yZTogUmVmYWN0b3IgYGZpbmRgICYgYGxpc3RgIHNvIHRoYXQgdGhleSB1c2UgYSBzaW5nbGUgd3JpdGUgaW5zdGVhZCBvZiBpbnRlcm1lZGlhdGUgd3JpdGVzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbIyYjODIwMzs1MDI3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC81MDI3KQoKKipGdWxsIENoYW5nZWxvZyoqOiA8aHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuOTMuMS4uLnYwLjkzLjI+CgojIyMgW2B2MC45My4xYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC45My4xKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC45My4wLi4udjAuOTMuMSkKCiMjIyMg8J+Pju+4j8KgUGVyZm9ybWFuY2UgSW1wcm92ZW1lbnRzCgotIFJlZHVjZWQgcmVkdW5kYW50IGAtLWF1dGgtcHJvdmlkZXItY21kYCBpbnZvY2F0aW9ucyBkdXJpbmcgYHJ1bi1hbGxgCi0gVGhpcyBjdXRzIGRvd24gb24gZXh0ZXJuYWwgY3JlZGVudGlhbCBjYWxscyBhbmQgbG93ZXJzIGF1dGhlbnRpY2F0aW9uIG92ZXJoZWFkIGZvciBsYXJnZSBydW5zLgotIFVwZGF0ZWQgdGhlIHVuaXQgcmVzb2x2ZXIgdG8gcmV1c2UgdGhlIGNvbmZpZ3VyYXRpb24gcGFyc2VkIGR1cmluZyBkaXNjb3ZlcnkgaW5zdGVhZCBvZiByZS1wYXJzaW5nIGVhY2ggYHRlcnJhZ3J1bnQuaGNsYC4KLSBUaGlzIHJlZHVjZXMgSENMIHBhcnNlcyBhbmQgYWxsb2NhdGlvbnMsIHNob3J0ZW5pbmcgZXhlY3V0aW9uIHRpbWUgb24gY29tcGxleCBzdGFja3MuCgpJbiBvdXIgaW50ZXJuYWwgKirigJxSdW4gYWxsIHdpdGggQXV0aCBQcm92aWRlcuKAnSoqIGJlbmNobWFyayAoMTAgcnVucywgXH4xMCBtcyBvbiBhdXRoIGNvbW1hbmQpLCB0aGVzZSBjaGFuZ2VzIHJlZHVjZWQgYXZlcmFnZSBydW50aW1lIGZyb20gXH4yMzUgbXMgdG8gXH4yMTMgbXMgKGFib3V0ICoqOSUgZmFzdGVyKiopIGNvbXBhcmVkIHRvIHYwLjkzLjAuCgpCZW5jaG1hcmtzIG9mICJCZW5jaG1hcmtEZXBlbmRlbmN5UGFpcndpc2VPZGREZXBlbmRzT25QcmV2RXZlblJhbmRvbVdhaXQiIHJlbGVhc2UgY2hhbmdlcyB2cyBtYWluCgo8cCBhbGlnbj0iY2VudGVyIj4KICA8aW1nCiAgICB3aWR0aD0iNzA4IgogICAgaGVpZ2h0PSIzODAiCiAgICBhbHQ9IjUwOTE3ODI5OS1kYWFhYmMzNy0zODM0LTQwYTQtOTViMy0xOWEyZmI1ZjJjNmQiCiAgICBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS91c2VyLWF0dGFjaG1lbnRzL2Fzc2V0cy82NzdlZDgwNy1iMDMwLTRlMzEtOGRkNi0xYmU4MmZiMzc4YmIiCiAgLz4KPC9wPgoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoqIHBlcmY6IHVuaXQgcmVzb2x2ZXIgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzIGJ5IEAmIzgyMDM7ZGVuaXMyW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzUwNDBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzUwNDApbC81MDQwCiogZmVhdDogYWxsb3cgaW5wdXQgdmFsaWRhdGlvbiB3aXRoIHZhcmlhYmxlIGluIHNvdXJjZSBvciB2ZXJzaW9uIGJ5IEAmIzgyMDM7VGhpc0d1eUNvZFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC81MDQxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC81MDQxKWwvNTA0MQoqIHBlcmY6IE1vcmUgdXNlZnVsIGJlbmNobWFyayBmb3IgZGV0ZXJtaW5pbmcgaW1wYWN0IG9mIGBoY2wgZm10YCBvcHRpbWl6YXRpb24gYnkgQCYjODIwMzt5aGFrYltodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC81MDI2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC81MDI2KWwvNTAyNgoqIGNob3JlOiBBZGQgYmV0YSByZWxlYXNlcyBieSBAJiM4MjAzO1Jlc29uYW5jZTE1W2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzUwNTJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzUwNTIpbC81MDUyCgojIyMjIE5ldyBDb250cmlidXRvcnMKKiBAJiM4MjAzO1RoaXNHdXlDb2RlcyBtYWRlIHRoZWlyIGZpcnN0IGNvbnRyaWJ1dGlbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNTA0MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNTA0MSlsLzUwNDEKCioqRnVsbCBDaGFuZ2Vsb2cqKjogPGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjkzLjAuLi52MC45My4xPgoKIyMjIFtgdjAuOTMuMGBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuOTMuMCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuOTIuMS4uLnYwLjkzLjApCgojIyMjIPCfm6DvuI8gQnJlYWtpbmcgQ2hhbmdlcwoKIyMjIyMgUmVtb3ZhbCBvZiBkZXByZWNhdGVkIEhDTCBhdHRyaWJ1dGVzCgpUaGUgYHNraXBgLCBgcmV0cnlhYmxlX2Vycm9yc2AsIGByZXRyeV9tYXhfYXR0ZW1wdHNgIGFuZCBgcmV0cnlfc2xlZXBfaW50ZXJ2YWxfc2VjYCBoYXZlIGFsbCBiZWVuIHJlbW92ZWQgZnJvbSBUZXJyYWdydW50LgoKVGhpcyBpcyB0aGUgZmluYWwgcGxhbm5lZCBicmVha2luZyBjaGFuZ2Ugb24gdGhlIHJvYWQgdG8gVGVycmFncnVudCAxLjAgcmVsYXRlZCB0byByZW1vdmFsIG9mIGRlcHJlY2F0ZWQgZnVuY3Rpb25hbGl0eS4gQnJlYWtpbmcgY2hhbmdlcyB3aWxsIGJlIG1pbmltaXplZCBiZWZvcmUgVGVycmFncnVudCAxLjAsIGJ1dCBtYXkgc3RpbGwgb2NjdXIgYmFzZWQgb24gdXNlciBmZWVkYmFjaywgb3IgYmFzZWQgb24gdGhlIG5lZWQgdG8gc3RhYmlsaXplIHBhcnRzIG9mIFRlcnJhZ3J1bnQgYmVmb3JlIDEuMC4KCklmIHlvdSBhcmUgY3VycmVudGx5IHVzaW5nIHRoZSBgc2tpcGAgYXR0cmlidXRlLCB5b3UnbGwgd2FudCB0byBhZGp1c3QgeW91ciB1c2FnZSB0byBsZXZlcmFnZSB0aGUgYGV4Y2x1ZGVgIGJsb2NrIGluc3RlYWQ6CgpCZWZvcmU6CgpgYGBoY2wKCiMgdGVycmFncnVudC5oY2wKCnNraXAgPSB0cnVlCmBgYAoKQWZ0ZXI6CgpgYGBoY2wKCiMgdGVycmFncnVudC5oY2wKCmV4Y2x1ZGUgewogIGlmICAgICAgPSB0cnVlCiAgYWN0aW9ucyA9IFsiYWxsIl0KfQpgYGAKCklmIHlvdSBhcmUgY3VycmVudGx5IHVzaW5nIHRoZSBgcmV0cnlhYmxlX2Vycm9yc2AgYXR0cmlidXRlLCB5b3UnbGwgd2FudCB0byBhZGp1c3QgeW91ciB1c2FnZSB0byBsZXZlcmFnZSB0aGUgYGVycm9yc2AgYmxvY2sgaW5zdGVhZDoKCkJlZm9yZToKCmBgYGhjbAoKIyB0ZXJyYWdydW50LmhjbAoKcmV0cnlhYmxlX2Vycm9ycyA9IFsKICAiLipFcnJvcjogdHJhbnNpZW50IG5ldHdvcmsgaXNzdWUuKiIsCiAgIi4qRXJyb3I6IHRpbWVvdXQuKiIKXQoKcmV0cnlfbWF4X2F0dGVtcHRzICAgICA9IDMKcmV0cnlfc2xlZXBfaW50ZXJ2YWxfc2VjID0gNQpgYGAKCkFmdGVyOgoKYGBgaGNsCgojIHRlcnJhZ3J1bnQuaGNsCgplcnJvcnMgewogIHJldHJ5ICJ0cmFuc2llbnRfZXJyb3JzIiB7CiAgICByZXRyeWFibGVfZXJyb3JzID0gWwogICAgICAiLipFcnJvcjogdHJhbnNpZW50IG5ldHdvcmsgaXNzdWUuKiIsCiAgICAgICIuKkVycm9yOiB0aW1lb3V0LioiCiAgICBdCiAgICBtYXhfYXR0ZW1wdHMgPSAzCiAgICBzbGVlcF9pbnRlcnZhbF9zZWMgPSA1CiAgfQp9CmBgYAoKUmVhZCB0aGUgZGV0YWlsZWQgW21pZ3JhdGlvbiBndWlkZV0oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL21pZ3JhdGUvZGVwcmVjYXRlZC1hdHRyaWJ1dGVzLykgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotIGNob3JlOiByZW1vdmFsIG9mIGRlcHJlY2F0ZWQgaGNsIGF0dHJpYnV0ZXMgc2tpcCwgcmV0cnlhYmxlXF9lcnJvcnMgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gWyMmIzgyMDM7NTAzM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNTAzMykKLSBidWc6IGVtcHR5IHBhdGhzIGhhbmRsaW5nIGluIGRlcGVuZGVuY2llcyBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbIyYjODIwMzs1MDE2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC81MDE2KQoKKipGdWxsIENoYW5nZWxvZyoqOiA8aHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuOTIuMS4uLnYwLjkzLjA+CgojIyMgW2B2MC45Mi4xYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC45Mi4xKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC45Mi4wLi4udjAuOTIuMSkKCiMjIyMg4pyoIE5ldyBGZWF0dXJlcwoKIyMjIyMgYGhjbCBmbXRgIHN1cHBvcnRzIGAtLXBhcmFsbGVsaXNtYCBmb3IgY29udHJvbGxpbmcgY29uY3VycmVuY3kKClRoZSBgaGNsIGZtdGAgY29tbWFuZCBub3cgc3VwcG9ydHMgdGhlIGAtLXBhcmFsbGVsaXNtYCBmbGFnIGZvciBjb250cm9sbGluZyB0aGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgZmlsZXMgZ2V0dGluZyBmb3JtYXR0ZWQuIEJ5IGRlZmF1bHQsIHRoZSBudW1iZXIgb2YgY29uY3VycmVudCBmaWxlIGZvcm1hdHMgd2lsbCBiZSBkZXRlcm1pbmVkIGJ5IHRoZSBudW1iZXIgb2YgQ1BVIGNvcmVzIGRldGVjdGVkIG9uIHRoZSBzeXN0ZW0gcnVubmluZyBUZXJyYWdydW50LgoKU2VlIFtgaGNsIGZtdGAgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL3JlZmVyZW5jZS9jbGkvY29tbWFuZHMvaGNsL2ZtdC8jcGFyYWxsZWxpc20pIGZvciBtb3JlIGluZm9ybWF0aW9uLgoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSBmZWF0OiBBZGRpbmcgc3VwcG9ydCBmb3IgYC0tcGFyYWxsZWxpc21gIHRvIGBoY2wgZm10YCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NTAyMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNTAyMCkKLSBkb2NzOiBEb2N1bWVudGluZyBzdXBwb3J0IGZvciBgLS1wYXJhbGxlbGlzbWAgZmxhZyBpbiBgaGNsIGZtdGAgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzUwMzFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzUwMzEpCi0gYnVpbGQoZGVwcyk6IGJ1bXAgdGhlIGpzLWRlcGVuZGVuY2llcyBncm91cCBhY3Jvc3MgMSBkaXJlY3Rvcnkgd2l0aCA1IHVwZGF0ZXMgYnkgW0AmIzgyMDM7ZGVwZW5kYWJvdF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlcGVuZGFib3QpXFtib3RdIGluIFsjJiM4MjAzOzUwMjVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzUwMjUpCi0gYnVpbGQoZGVwcyk6IGJ1bXAgYWN0aW9ucy91cGxvYWQtYXJ0aWZhY3QgZnJvbSA0IHRvIDUgYnkgW0AmIzgyMDM7ZGVwZW5kYWJvdF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlcGVuZGFib3QpXFtib3RdIGluIFsjJiM4MjAzOzUwMjRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzUwMjQpCi0gYnVpbGQoZGVwcyk6IGJ1bXAgYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdCBmcm9tIDQgdG8gNiBieSBbQCYjODIwMztkZXBlbmRhYm90XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVwZW5kYWJvdClcW2JvdF0gaW4gWyMmIzgyMDM7NTAyM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNTAyMykKLSBjaG9yZTogUmVmYWN0b3JpbmcgQ29tcG9uZW50IGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbIyYjODIwMzs1MDE3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC81MDE3KQoKKipGdWxsIENoYW5nZWxvZyoqOiA8aHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuOTIuMC4uLnYwLjkyLjE+CgojIyMgW2B2MC45Mi4wYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC45Mi4wKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC45MS41Li4udjAuOTIuMCkKCiMjIyMg8J+boO+4jyBCcmVha2luZyBDaGFuZ2VzCgojIyMjIyBJbnRlcm5hbCBgYm9pbGVycGxhdGVgIGRlcGVuZGVuY3kgdXBncmFkZWQgdG8gdjAuMTAuMQoKVGhlIHRlbXBsYXRpbmcgZW5naW5lIChbQm9pbGVycGxhdGVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vYm9pbGVycGxhdGUpKSB1c2VkIGJ5IHRoZSBUZXJyYWdydW50IGBjYXRhbG9nYCBhbmQgYHNjYWZmb2xkYCBjb21tYW5kcyBoYXMgYmVlbiB1cGdyYWRlZCB0byBgdjAuMTAuMWAuCgpBcyBhIGNvbnNlcXVlbmNlLCB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiBzY2FmZm9sZGluZyB3aGVuIHVzaW5nIHRoZSBgY2F0YWxvZ2AgYW5kIGBzY2FmZm9sZGAgY29tbWFuZHMgaGFzIGNoYW5nZWQgdG8gYWxsb3cgZm9yIHRoZSB1c2Ugb2YgQm9pbGVycGxhdGUgaG9va3MgYW5kIHNoZWxsIGNvbW1hbmRzIChzZWUgW2hvb2tzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL2JvaWxlcnBsYXRlP3RhYj1yZWFkbWUtb3YtZmlsZSNob29rcykgYW5kIFtoZWxwZXJzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL2JvaWxlcnBsYXRlP3RhYj1yZWFkbWUtb3YtZmlsZSN0ZW1wbGF0ZS1oZWxwZXJzKSBpbiBCb2lsZXJwbGF0ZSBkb2N1bWVudGF0aW9uKSBieSBkZWZhdWx0LgoKTm90ZSB0aGF0IEJvaWxlcnBsYXRlIHdpbGwgYXNrIGZvciBwZXJtaXNzaW9uIGludGVyYWN0aXZlbHkgYnkgZGVmYXVsdCB0byBydW4gc2FpZCBob29rcyBhbmQgc2hlbGwgY29tbWFuZHMsIGFuZCB0aGF0IHRoZSBpbnRlcmFjdGl2ZSBwcm9tcHQgd2lsbCBwcm9wYWdhdGUgdG8gVGVycmFncnVudCB1c2Vycy4KCmUuZy4KCmBgYGJhc2gKJCB0ZXJyYWdydW50IHNjYWZmb2xkIGdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvL3Rlc3QvZml4dHVyZXMvc2NhZmZvbGQvd2l0aC1zaGVsbC1jb21tYW5kcwouLi4KW2JvaWxlcnBsYXRlXSAyMDI1LzEwLzI0IDEzOjQ0OjU2IFNoZWxsIGNvbW1hbmQgZGV0YWlsczoKW2JvaWxlcnBsYXRlXSAyMDI1LzEwLzI0IDEzOjQ0OjU2ICAgQ29tbWFuZDogZWNobwpbYm9pbGVycGxhdGVdIDIwMjUvMTAvMjQgMTM6NDQ6NTYgICBBcmd1bWVudHM6IFstbiBTSEVMTF9FWEVDVVRFRF9WQUxVRV8xXQpbYm9pbGVycGxhdGVdIDIwMjUvMTAvMjQgMTM6NDQ6NTYgICBXb3JraW5nIERpcmVjdG9yeTogL3Zhci9mb2xkZXJzL3gzL2o1NjExODdkN2JuN2oyNXhmNmhzNzN3cjAwMDBnbi9UL3NjYWZmb2xkMzU4Nzg4NzE4MS8uYm9pbGVycGxhdGUKRXhlY3V0ZSBzaGVsbCBjb21tYW5kPyAoeS9hL24pIDoKYGBgCgpgYGBiYXNoCiQgdGVycmFncnVudCBzY2FmZm9sZCBnaXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50Ly90ZXN0L2ZpeHR1cmVzL3NjYWZmb2xkL3dpdGgtaG9va3MKLi4uCltib2lsZXJwbGF0ZV0gMjAyNS8xMC8yNCAxMzo0ODoyNyBIb29rIGRldGFpbHM6Cltib2lsZXJwbGF0ZV0gMjAyNS8xMC8yNCAxMzo0ODoyNyAgIENvbW1hbmQ6IGVjaG8KW2JvaWxlcnBsYXRlXSAyMDI1LzEwLzI0IDEzOjQ4OjI3ICAgQXJndW1lbnRzOiBbQkVGT1JFX0hPT0tfRVhFQ1VURURdCltib2lsZXJwbGF0ZV0gMjAyNS8xMC8yNCAxMzo0ODoyNyAgIFdvcmtpbmcgRGlyZWN0b3J5OiAvdmFyL2ZvbGRlcnMveDMvajU2MTE4N2Q3Ym43ajI1eGY2aHM3M3dyMDAwMGduL1Qvc2NhZmZvbGQ0MjAzNjEzNjEzLy5ib2lsZXJwbGF0ZQpFeGVjdXRlIGhvb2s/ICh5L2EvbikgOgpgYGAKCldoZW4gdXNpbmcgdGhlIGAtLW5vbi1pbnRlcmFjdGl2ZWAgZmxhZywgVGVycmFncnVudCB3aWxsIHNraXAgcHJvbXB0cyBhbmQgYWxsb3cgaG9va3MgYW5kIHNoZWxsIGNvbW1hbmRzIGF1dG9tYXRpY2FsbHkgYnkgZGVmYXVsdC4KCmBgYGJhc2gKJCB0ZXJyYWdydW50IHNjYWZmb2xkIGdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvL3Rlc3QvZml4dHVyZXMvc2NhZmZvbGQvd2l0aC1ob29rcyAtLW5vbi1pbnRlcmFjdGl2ZQouLi4KW2JvaWxlcnBsYXRlXSAyMDI1LzEwLzI0IDEzOjUwOjU2IEV4ZWN1dGluZyBob29rIChwcmV2aW91c2x5IGNvbmZpcm1lZCBvciBhbGwgY29uZmlybWVkKQpbYm9pbGVycGxhdGVdIDIwMjUvMTAvMjQgMTM6NTA6NTYgUnVubmluZyBjb21tYW5kOiBlY2hvIEJFRk9SRV9IT09LX0VYRUNVVEVECkJFRk9SRV9IT09LX0VYRUNVVEVECi4uLgpbYm9pbGVycGxhdGVdIDIwMjUvMTAvMjQgMTM6NTA6NTYgRXhlY3V0aW5nIGhvb2sgKHByZXZpb3VzbHkgY29uZmlybWVkIG9yIGFsbCBjb25maXJtZWQpCltib2lsZXJwbGF0ZV0gMjAyNS8xMC8yNCAxMzo1MDo1NiBSdW5uaW5nIGNvbW1hbmQ6IGVjaG8gQUZURVJfSE9PS19FWEVDVVRFRApBRlRFUl9IT09LX0VYRUNVVEVECmBgYAoKSWYgeW91IHdvdWxkIGxpa2UgdG8gZXhwbGljaXRseSBwcmV2ZW50IHRoaXMgYmVoYXZpb3IsIHlvdSBjYW4gdXNlIHRoZSBgLS1uby1ob29rc2AgYW5kIGAtLW5vLXNoZWxsYCBmbGFncyBhZGRlZCB0byBgY2F0YWxvZ2AgYW5kIGBzY2FmZm9sZGAgdG8gZXhwbGljaXRseSBwcmV2ZW50IHVzYWdlIG9mIHRoZXNlIGZlYXR1cmVzOgoKYGBgYmFzaAokIHRlcnJhZ3J1bnQgc2NhZmZvbGQgZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC8vdGVzdC9maXh0dXJlcy9zY2FmZm9sZC93aXRoLWhvb2tzIC0tbm9uLWludGVyYWN0aXZlIC0tbm8taG9va3MgLS1uby1zaGVsbAouLi4KW2JvaWxlcnBsYXRlXSAyMDI1LzEwLzI0IDEzOjUzOjQwIEhvb2tzIGFyZSBkaXNhYmxlZCwgc2tpcHBpbmcgMSBob29rKHMpCi4uLgpbYm9pbGVycGxhdGVdIDIwMjUvMTAvMjQgMTM6NTM6NDAgSG9va3MgYXJlIGRpc2FibGVkLCBza2lwcGluZyAxIGhvb2socykKMTM6NTM6NDAuMTQxIElORk8gICBSdW5uaW5nIGZtdCBvbiBnZW5lcmF0ZWQgY29kZSAuCjEzOjUzOjQwLjE0MyBJTkZPICAgU2NhZmZvbGRpbmcgY29tcGxldGVkCmBgYAoKYGBgYmFzaAokIHRlcnJhZ3J1bnQgc2NhZmZvbGQgZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC8vdGVzdC9maXh0dXJlcy9zY2FmZm9sZC93aXRoLXNoZWxsLWNvbW1hbmRzIC0tbm9uLWludGVyYWN0aXZlIC0tbm8taG9va3MgLS1uby1zaGVsbAouLi4KW2JvaWxlcnBsYXRlXSAyMDI1LzEwLzI0IDEzOjU0OjQ3IFNoZWxsIGhlbHBlcnMgYXJlIGRpc2FibGVkLiBXaWxsIG5vdCBleGVjdXRlIHNoZWxsIGNvbW1hbmQgJ1tlY2hvIC1uIFNIRUxMX0VYRUNVVEVEX1ZBTFVFXzFdJy4gUmV0dXJuaW5nIHBsYWNlaG9sZGVyIHZhbHVlICdyZXBsYWNlLW1lJy4KW2JvaWxlcnBsYXRlXSAyMDI1LzEwLzI0IDEzOjU0OjQ3IFNoZWxsIGhlbHBlcnMgYXJlIGRpc2FibGVkLiBXaWxsIG5vdCBleGVjdXRlIHNoZWxsIGNvbW1hbmQgJ1tlY2hvIC1uIFNIRUxMX0VYRUNVVEVEX1ZBTFVFXzJdJy4gUmV0dXJuaW5nIHBsYWNlaG9sZGVyIHZhbHVlICdyZXBsYWNlLW1lJy4KW2JvaWxlcnBsYXRlXSAyMDI1LzEwLzI0IDEzOjU0OjQ3IEhvb2tzIGFyZSBkaXNhYmxlZCwgc2tpcHBpbmcgMCBob29rKHMpCjEzOjU0OjQ3LjM1NiBJTkZPICAgUnVubmluZyBmbXQgb24gZ2VuZXJhdGVkIGNvZGUgLgoxMzo1NDo0Ny4zNTYgSU5GTyAgIC4vdGVycmFncnVudC5oY2wgd2FzIHVwZGF0ZWQKMTM6NTQ6NDcuMzU2IElORk8gICBTY2FmZm9sZGluZyBjb21wbGV0ZWQKYGBgCgpZb3UgY2FuIGFsc28gc2V0IHRoZSBgbm9faG9va3NgIGFuZCBgbm9fc2hlbGxgIGF0dHJpYnV0ZXMgaW4geW91ciBgY2F0YWxvZ2AgY29uZmlnIHRvIGhhdmUgdGhlc2Ugc2V0IGJ5IGRlZmF1bHQgZm9yIGFsbCB1c2VycyBvZiB5b3VyIHByb2plY3Q6CgpgYGBiYXNoCgojIHJvb3QuaGNsCmNhdGFsb2cgewogIG5vX3NoZWxsID0gdHJ1ZQogIG5vX2hvb2tzID0gdHJ1ZQp9CmBgYAoK4pqg77iPIFJlbWVtYmVyIHRoYXQgSWFDIGNvbmZpZ3VyYXRpb25zIGFyZSBpbmhlcmVudGx5IHBvd2VyZnVsLCBhbmQgc2hvdWxkIG5vdCBiZSB0cnVzdGVkIGJsaW5kbHkuIE1ha2Ugc3VyZSB0aGF0IHlvdSByZXZpZXcgYW5kIHRydXN0IHRlbXBsYXRlIHNvdXJjZXMgd2hlbiBnZW5lcmF0aW5nIHRlbXBsYXRlcyB1c2luZyBUZXJyYWdydW50LgoKIyMjIyDwn6eqwqBFeHBlcmltZW50cyBVcGRhdGVkCgojIyMjIyBgZmlsdGVyLWZsYWdgIGV4cGVyaW1lbnQgbm93IHN1cHBvcnRlZCBpbiAgYGhjbGAgY29tbWFuZHMKClRoZSBgLS1maWx0ZXJgIGZsYWcgaXMgbm93IHN1cHBvcnRlZCBpbiBgaGNsYCBjb21tYW5kcyAoW2B2YWxpZGF0ZWBdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2UvY2xpL2NvbW1hbmRzL2hjbC92YWxpZGF0ZS8pIGFuZCBbYGZtdGBdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2UvY2xpL2NvbW1hbmRzL2hjbC9mbXQvKSkgKHJlbWVtYmVyIHRoYXQgeW91IG11c3QgdXNlIHRoZSBbYGZpbHRlci1mbGFnYF0oaHR0cHM6Ly93d3cubm90aW9uLnNvL3YwLTkxLTUtMjk2ZDg3NTlhNjgyODAxNmFhZWJlNjkwMDA4NTU2NzI/cHZzPTIxKSBleHBlcmltZW50IHRvIHRyeSB0aGlzKS4KCmUuZy4KCmBgYGJhc2gKCiMgRmlsdGVyIGJ5IHBhdGggd2l0aCBnbG9iIHBhdHRlcm5zCnRlcnJhZ3J1bnQgaGNsIHZhbGlkYXRlIC0tZmlsdGVyICcuL3Byb2QvKionCgojIEZpbHRlciBieSBuYW1lCnRlcnJhZ3J1bnQgaGNsIHZhbGlkYXRlIC0tZmlsdGVyICdhcHAqJwoKIyBFeGNsdWRlIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zCnRlcnJhZ3J1bnQgaGNsIHZhbGlkYXRlIC0tZmlsdGVyICchLi90ZXN0LyoqJwoKIyBDb21iaW5lIGZpbHRlcnMgd2l0aCBpbnRlcnNlY3Rpb24gKHJlZmluZW1lbnQpCnRlcnJhZ3J1bnQgaGNsIHZhbGlkYXRlIC0tZmlsdGVyICcuL3Byb2QvKiogfCAhbmFtZT1sZWdhY3knCgojIE11bHRpcGxlIGZpbHRlcnMgd2l0aCB1bmlvbgp0ZXJyYWdydW50IGhjbCB2YWxpZGF0ZSAtLWZpbHRlciAnYXBwMScgLS1maWx0ZXIgJ2FwcDInCmBgYAoKV2hlbiB1c2luZyB0aGUgYC0tZmlsdGVyYCBmbGFnIGZvciBgaGNsIGZtdGAsIGZpbHRlcmluZyBhcHBsaWVzIHRvIGZpbGVzIGluc3RlYWQgb2YgdW5pdHMgLyBzdGFja3MuIE9ubHkgZmlsZSBwYXRoIGZpbHRlcnMgYXJlIHN1cHBvcnRlZCBmb3IgdGhlIGBoY2wgZm10YCBjb21tYW5kLgoKYGBgYmFzaAoKIyBGb3JtYXQgYSBwYXJ0aWN1bGFyIGZpbGUKdGVycmFncnVudCBoY2wgZm10IC0tZmlsdGVyICcuL3Byb2QvYXBwMS90ZXJyYWdydW50LmhjbCcKCiMgRm9ybWF0IGZpbGVzIG1hdGNoaW5nIGEgZ2xvYgp0ZXJyYWdydW50IGhjbCBmbXQgLS1maWx0ZXIgJy4vcHJvZC8qKicKCiMgRXhjbHVkZSBzcGVjaWZpYyBjb25maWd1cmF0aW9ucwp0ZXJyYWdydW50IGhjbCBmbXQgLS1maWx0ZXIgJyEuL3Rlc3QvKionCmBgYAoKIyMjIyDwn4+O77iPwqBQZXJmb3JtYW5jZSBJbXByb3ZlbWVudHMKCiMjIyMjIGBoY2wgZm10YCBQZXJmb3JtYW5jZSBJbXByb3ZlZAoKVGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBgaGNsIGZtdGAgY29tbWFuZCBoYXMgYmVlbiBpbXByb3ZlZCBzdWJzdGFudGlhbGx5LgoKPGltZyB3aWR0aD0iMTE2MCIgaGVpZ2h0PSI2MDkiIGFsdD0iU2NyZWVuc2hvdCAyMDI1LTEwLTI3IGF0IDEwIDE1IDU2IiBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS91c2VyLWF0dGFjaG1lbnRzL2Fzc2V0cy80MmMxNjE0MC01M2E5LTRjYmUtOGY4NS1lNjU5MzI5NWMzMjMiIC8+CgpGb3JtYXR0aW5nIGZpbGVzIGlzIG5vdyByb3VnaGx5IHR3aWNlIGFzIGZhc3QgZHVlIHRvIHBhcmFsbGVsaXphdGlvbiBvZiBmaWxlIGZvcm1hdHRpbmcsIGFuZCBvcHRpbWl6YXRpb25zIHVzZWQgaW4gZmlsZSBleGNsdXNpb24uCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotIGZlYXQ6IEFkZGluZyBzdXBwb3J0IGZvciBgLS1maWx0ZXJgIGluIGBoY2xgIGNvbW1hbmRzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbIyYjODIwMzs1MDA2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC81MDA2KQotIGRvY3M6IERvY3VtZW50aW5nIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBgLS1leHRlcm5hbGAgYW5kIGAtLWRlcGVuZGVuY2llc2AgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzUwMTRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzUwMTQpCi0gZG9jczogRG9jdW1lbnRpbmcgc3VwcG9ydCBmb3IgYC0tZmlsdGVyYCBpbiBgaGNsYCBjb21tYW5kcyBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NTAxMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNTAxMCkKLSBjaG9yZTogQnVtcGluZyBib2lsZXJwbGF0ZSBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NDgwNV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDgwNSkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogPGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjkxLjUuLi52MC45Mi4wPgoKIyMjIFtgdjAuOTEuNWBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuOTEuNSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuOTEuNC4uLnYwLjkxLjUpCgojIyMjIPCfp6rCoEV4cGVyaW1lbnRzIFVwZGF0ZWQKCiMjIyMjICoqYGZpbHRlci1mbGFnYCB1cGRhdGVkIHdpdGggYHJ1bmAgc3VwcG9ydCoqCgpUaGUgYC0tZmlsdGVyYCBmbGFnIGlzIG5vdyBzdXBwb3J0ZWQgb24gdGhlIGBydW5gIGNvbW1hbmQgKHJlbWVtYmVyIHRoYXQgeW91IG11c3QgdXNlIHRoZSBbYGZpbHRlci1mbGFnYF0oaHR0cHM6Ly93d3cubm90aW9uLnNvL3YwLTkxLTUtMjk2ZDg3NTlhNjgyODAxNmFhZWJlNjkwMDA4NTU2NzI/cHZzPTIxKSBleHBlcmltZW50IHRvIHRyeSB0aGlzKS4KCmUuZy4KCmBgYGJhc2gKCiMgRmlsdGVyIGJ5IHBhdGggd2l0aCBnbG9iIHBhdHRlcm5zCnRlcnJhZ3J1bnQgcnVuIC0tYWxsIC0tZmlsdGVyICdwcm9kLyoqJyAtLSBwbGFuCgojIEZpbHRlciBieSBuYW1lCnRlcnJhZ3J1bnQgcnVuIC0tYWxsIC0tZmlsdGVyICdhcHAqJyAtLSBhcHBseQoKIyBFeGNsdWRlIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zCnRlcnJhZ3J1bnQgcnVuIC0tYWxsIC0tZmlsdGVyICchLi90ZXN0LyoqJyAtLSBwbGFuCgojIENvbWJpbmUgZmlsdGVycyB3aXRoIGludGVyc2VjdGlvbiAocmVmaW5lbWVudCkKdGVycmFncnVudCBydW4gLS1hbGwgLS1maWx0ZXIgJy4vcHJvZC8qKiB8ICFuYW1lPWxlZ2FjeScgLS0gYXBwbHkKCiMgTXVsdGlwbGUgZmlsdGVycyB3aXRoIHVuaW9uCnRlcnJhZ3J1bnQgcnVuIC0tYWxsIC0tZmlsdGVyICdhcHAxJyAtLWZpbHRlciAnYXBwMicgLS0gcGxhbgoKYGBgCgpGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkb2N1bWVudGF0aW9uIG9uIFtGaWx0ZXJpbmcgVW5pdHNdKGh0dHBzOi8vdGVycmFncnVudC1kb2NzLWdpdC1kb2NzLWRvY3VtZW50aW5nLXN1cHBvcnQtZi1iMDY5OWQtZ3J1bnR3b3JrLnZlcmNlbC5hcHAvZG9jcy9yZWZlcmVuY2UvY2xpL2NvbW1hbmRzL3J1bi8jZmlsdGVyaW5nLXVuaXRzKS4KCklmIHlvdSBnaXZlIHRoaXMgZmVhdHVyZSBhIHRyeSwgbWFrZSBzdXJlIHRvIHNoYXJlIHlvdXIgZmVlZGJhY2sgb24gdGhlIFtGaWx0ZXIgRmxhZyBSRkNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9pc3N1ZXMvNDA2MCkKCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gZmVhdDogQWRkaW5nIHN1cHBvcnQgZm9yIGAtLWZpbHRlcmAgZmxhZyBpbiBgcnVuYCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NDk4MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDk4MSkKLSBkb2NzOiBEb2N1bWVudGluZyBzdXBwb3J0IGZvciBgLS1maWx0ZXJgIGluIHRoZSBgcnVuYCBjb21tYW5kIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbIyYjODIwMzs1MDE1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC81MDE1KQotIGNob3JlOiBmaXhlcyBmb3IgcGVyaW9kaWNhbGx5IGZhaWxpbmcgdGVzdHMgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gWyMmIzgyMDM7NTAxMV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNTAxMSkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogPGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjkxLjQuLi52MC45MS41PgoKIyMjIFtgdjAuOTEuNGBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuOTEuNCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuOTEuMy4uLnYwLjkxLjQpCgojIyMjIPCfp6rCoEV4cGVyaW1lbnRzIFVwZGF0ZWQKCiMjIyMjICoqYGZpbHRlci1mbGFnYCB1cGRhdGVkIHdpdGggYHJlYWRpbmc9YCBzdXBwb3J0KioKClRoZSBgLS1maWx0ZXJgIGZsYWcgbm93IHN1cHBvcnRzIHVzYWdlIG9mIHRoZSBgcmVhZGluZz1gIGF0dHJpYnV0ZSB0byBmaWx0ZXIgb24gY29tcG9uZW50cyB0aGF0IHJlYWQgcGFydGljdWxhciBzaGFyZWQgaW5mcmFzdHJ1Y3R1cmUgY29uZmlndXJhdGlvbnMuCgplLmcuCgpgYGBiYXNoCnRlcnJhZ3J1bnQgZmluZCAtLWZpbHRlciAncmVhZGluZz1zaGFyZWQuaGNsJwp0ZXJyYWdydW50IGZpbmQgLS1maWx0ZXIgJ3JlYWRpbmc9Y29tbW9uLyouaGNsJyAjIEdsb2JzIHN1cHBvcnRlZCEKdGVycmFncnVudCBmaW5kIC0tZmlsdGVyICdyZWFkaW5nPWNvbmZpZy8qKicgIyBEb3VibGUtd2lsZGNhcmQgZ2xvYnMgYXJlIHJlcXVpcmVkIGZpbHRlcmluZyBvbiBmaWxlcyBuZXN0ZWQgaW4gc3ViZGlyZWN0b3JpZXMuCnRlcnJhZ3J1bnQgZmluZCAtLWZpbHRlciAncmVhZGluZz1jb25maWcvdmFycy50ZnZhcnMnCmBgYAoKVGhpcyBiZWhhdmlvciBpcyBzaW1pbGFyIHRvIHRoYXQgcHJvdmlkZWQgYnkgdGhlIFtgLS1xdWV1ZS1pbmNsdWRlLXVuaXRzLXJlYWRpbmdgXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL2NsaS9jb21tYW5kcy9ydW4vI3F1ZXVlLWluY2x1ZGUtdW5pdHMtcmVhZGluZykgZmxhZywgd2l0aCBhZGRpdGlvbmFsIHN1cHBvcnQgZm9yIGdsb2JzLCBuZWdhdGlvbiBhbmQgZmlsdGVyIGNoYWluaW5nIHN1cHBvcnRlZCBpbiB0aGUgYC0tZmlsdGVyYCBmbGFnIG1vcmUgZ2VuZXJhbGx5LgoKRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvbiBbQXR0cmlidXRlLUJhc2VkIEZpbHRlcmluZ10oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL3JlZmVyZW5jZS9jbGkvY29tbWFuZHMvZmluZC8jYXR0cmlidXRlLWJhc2VkLWZpbHRlcmluZykuCgpJZiB5b3UgZ2l2ZSB0aGlzIGZlYXR1cmUgYSB0cnksIG1ha2Ugc3VyZSB0byBzaGFyZSB5b3VyIGZlZWRiYWNrIG9uIHRoZSBbRmlsdGVyIEZsYWcgUkZDXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvaXNzdWVzLzQwNjApCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotIGZlYXQ6IEFkZGluZyBzdXBwb3J0IGZvciBgcmVhZGluZz1gIGluIGAtZmlsdGVyYCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NTAwNF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNTAwNCkKLSBkb2NzOiBEb2N1bWVudGluZyB0aGUgbmV3IGByZWFkaW5nYCBhdHRyaWJ1dGUgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzUwMDVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzUwMDUpCi0gZG9jczogZG9jdW1lbnRpbmcgaG93IHRvIGV4Y2x1ZGUgZmlsZXMgZnJvbSBtb2R1bGVzIGJ5IFtAJiM4MjAzO2NlYmlkaGVtXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vY2ViaWRoZW0pIGluIFsjJiM4MjAzOzUwMDhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzUwMDgpCi0gZG9jczogU21hbGwgZml4ZXMgaW4gdGhlIFByb3ZpZGVyIENhY2hlIFNlcnZlciBkb2N1bWVudGF0aW9uIGJ5IFtAJiM4MjAzO1JhZmFlbFdPXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vUmFmYWVsV08pIGluIFsjJiM4MjAzOzQ5NTldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5NTkpCgojIyMjIE5ldyBDb250cmlidXRvcnMKCi0gW0AmIzgyMDM7Y2ViaWRoZW1dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9jZWJpZGhlbSkgbWFkZSB0aGVpciBmaXJzdCBjb250cmlidXRpb24gaW4gWyMmIzgyMDM7NTAwOF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNTAwOCkKLSBbQCYjODIwMztSYWZhZWxXT10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL1JhZmFlbFdPKSBtYWRlIHRoZWlyIGZpcnN0IGNvbnRyaWJ1dGlvbiBpbiBbIyYjODIwMzs0OTU5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80OTU5KQoKKipGdWxsIENoYW5nZWxvZyoqOiA8aHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuOTEuMy4uLnYwLjkxLjQ+CgojIyMgW2B2MC45MS4zYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC45MS4zKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC45MS4yLi4udjAuOTEuMykKCiMjIyMg4pyoIE5ldyBGZWF0dXJlcwoKIyMjIyMgYC0tcmVhZGluZ2AgZmxhZyBhZGRlZCB0byB0aGUgYGZpbmRgIGNvbW1hbmQKClRoZSBgZmluZGAgY29tbWFuZCBub3cgc3VwcG9ydHMgdGhlIGAtLXJlYWRpbmdgIGZsYWcsIHdoaWNoIGFsbG93cyB5b3UgdG8gZGlzY292ZXIgdGhlIHNoYXJlZCBjb25maWd1cmF0aW9ucyByZWFkIGJ5IHVuaXRzIGFuZCBzdGFja3Mgd2hlbiB1c2luZyB0aGUgYC0tanNvbmAgZm9ybWF0LgoKYGBgYmFzaAokIHRlcnJhZ3J1bnQgZmluZCAtLXJlYWRpbmcgLS1qc29uClsKICB7CiAgICAidHlwZSI6ICJ1bml0IiwKICAgICJwYXRoIjogImF3cy1hY2NvdW50LTEiLAogICAgInJlYWRpbmciOiBbCiAgICAgICJhd3MtZGF0YS55bWwiCiAgICBdCiAgfSwKICB7CiAgICAidHlwZSI6ICJ1bml0IiwKICAgICJwYXRoIjogImF3cy1hY2NvdW50LTIiLAogICAgInJlYWRpbmciOiBbCiAgICAgICJhd3MtZGF0YS55bWwiCiAgICBdCiAgfSwKICB7CiAgICAidHlwZSI6ICJ1bml0IiwKICAgICJwYXRoIjogImdjcC1wcm9qZWN0LTEiLAogICAgInJlYWRpbmciOiBbCiAgICAgICJnY3AtZGF0YS5oY2wiCiAgICBdCiAgfQpdCmBgYAoKWW91IGNhbiB1c2UgdGhpcyBpbmZvcm1hdGlvbiB0byBkcml2ZSBjdXN0b20gbG9naWMgaW4geW91ciB3b3JrZmxvd3MgYmFzZWQgb24gdGhlIGNoYW5nZXMgcmVsYXRlZCB0byBwYXJ0aWN1bGFyIGZpbGVzLgoKZS5nLgoKYGBgYmFzaAokIHRlcnJhZ3J1bnQgZmluZCAtLXJlYWRpbmcgLS1qc29uIHwganEgJ1suW10gfCBzZWxlY3QoLnJlYWRpbmdbXT8gfCBjb250YWlucygiYXdzLWRhdGEueW1sIikpfCAucGF0aF0nClsKICAiYXdzLWFjY291bnQtMSIsCiAgImF3cy1hY2NvdW50LTIiCl0KCiQgdGVycmFncnVudCBmaW5kIC0tcmVhZGluZyAtLWpzb24gfCBqcSAnWy5bXSB8IHNlbGVjdCgucmVhZGluZ1tdPyB8IGNvbnRhaW5zKCJnY3AtZGF0YS5oY2wiKSl8IC5wYXRoXScKWwogICJnY3AtcHJvamVjdC0xIgpdCmBgYAoKWW91IGNhbiBsZWFybiBtb3JlIGFib3V0IHRoZSBgLS1yZWFkaW5nYCBmbGFnIGluIHRoZSBbYGZpbmRgIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2UvY2xpL2NvbW1hbmRzL2ZpbmQvI3JlYWRpbmctZmlsZXMpLgoKIyMjIyDwn5CbIEJ1ZyBGaXhlcwoKIyMjIyMgRW1wdHkgc3RhY2tzIG5vIGxvbmdlciB0aHJvdyBlcnJvcnMKClByZXZpb3VzbHksIGEgYnVnIGluIHRoZSBsb2dpYyB1c2VkIGZvciBtYWtpbmcgc3VyZSB0aGF0IHVzZXJzIGRpZG7igJl0IGFjY2lkZW50YWxseSBydW4gb24gZW1wdHkgc3RhY2tzIHJlc3VsdGVkIGluIHVzZXJzIGdldHRpbmcgYSBub24temVybyBleGl0IGNvZGUgd2hlbiBhbGwgdW5pdHMgaW4gYSBzdGFjayB3ZXJlIGV4Y2x1ZGVkIChlLmcuIHZpYSB0aGUgYGV4Y2x1ZGVgIGJsb2NrKS4KClRoYXQgYnVnIGhhcyBiZWVuIGZpeGVkLgoKIyMjIyMgRGVwZW5kZW5jeSBvdXRwdXRzIGNhbiBub3cgYmUgdXNlZCBpbiBnZW5lcmF0ZSBibG9ja3MKClByZXZpb3VzbHksIGEgYnVnIGluIHRoZSB3YXkgSENMIHBhcnNpbmcgd2FzIGRvbmUgZHVyaW5nIGRpc2NvdmVyeSByZXN1bHRlZCBpbiBlcnJvcnMgYmVpbmcgdGhyb3duIGZvciB1c2VycyB3aGVuIGRlcGVuZGVuY3kgb3V0cHV0cyB3ZXJlIHVzZWQgaW4gYGdlbmVyYXRlYCBibG9ja3MuIFRoYXQgZXJyb3IgaGFzIHNpbmNlIGJlZW4gcmVzb2x2ZWQuCgpUaGF0IGJ1ZyBoYXMgYmVlbiBmaXhlZC4KCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gZmVhdDogQWRkaW5nIHJlYWRpbmcgc3VwcG9ydCBpbiBgZmluZGAgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzUwMDJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzUwMDIpCi0gZml4OiBSZW1vdmluZyBmaWx0ZXIgZW5hYmxlZCBjaGVjayBvbiBlbXB0eSBzdGFja3MgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzQ5OTJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5OTIpCi0gZml4OiByZWZlcmVuY2Ugb2YgZGVwZW5kZW5jeSBvdXRwdXRzIGluIGdlbmVyYXRlIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFsjJiM4MjAzOzQ5OTRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5OTQpCi0gZG9jczogRG9jdW1lbnRpbmcgbmV3IGAtcmVhZGluZ2AgZmxhZyBmb3IgYGZpbmRgIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbIyYjODIwMzs1MDAzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC81MDAzKQotIGRvY3M6IEZpeGluZyAtLXNvdXJjZS1tYXAgZXhwbGFuYXRpb24gYnkgW0AmIzgyMDM7YXRoZWltYW5dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hdGhlaW1hbikgaW4gWyMmIzgyMDM7NDk5N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDk5NykKLSBkb2NzOiBGaXhpbmcgYEZpbHRlcnNgIGRvY3MgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzQ5OTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5OTYpCi0gY2hvcmU6IFRyYWNraW5nIERBRyBub2RlcyBpbiBjb21wb25lbnRzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbIyYjODIwMzs0OTk4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80OTk4KQotIGNob3JlOiBUcmFja2luZyByZWFkcyBpbiBjb21wb25lbnRzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbIyYjODIwMzs1MDAwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC81MDAwKQotIGNob3JlOiBVcGRhdGluZyBsYW5ndWFnZSBpbiBkaXNjb3ZlcnkgY29tbWFuZHMgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzUwMDFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzUwMDEpCi0gY2hvcmU6IFVzaW5nIGEgc3RhbmRhcmQgc2hlbGwgc3RyaW5nIHBhcnNpbmcgbGlicmFyeSBpbnN0ZWFkIG9mIGhhbmRsaW5nIGl0IG91cnNlbHZlcyBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NDk5MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDk5MSkKLSBidWlsZChkZXBzKTogYnVtcCB0aGUganMtZGVwZW5kZW5jaWVzIGdyb3VwIGFjcm9zcyAxIGRpcmVjdG9yeSB3aXRoIDUgdXBkYXRlcyBieSBbQCYjODIwMztkZXBlbmRhYm90XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVwZW5kYWJvdClcW2JvdF0gaW4gWyMmIzgyMDM7NDk5M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDk5MykKLSBidWlsZChkZXBzKTogYnVtcCB2aXRlIGZyb20gNi4zLjYgdG8gNi40LjEgaW4gL2RvY3Mtc3RhcmxpZ2h0IGJ5IFtAJiM4MjAzO2RlcGVuZGFib3RdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZXBlbmRhYm90KVxbYm90XSBpbiBbIyYjODIwMzs0OTk5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80OTk5KQoKIyMjIyBOZXcgQ29udHJpYnV0b3JzCgotIFtAJiM4MjAzO2F0aGVpbWFuXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXRoZWltYW4pIG1hZGUgdGhlaXIgZmlyc3QgY29udHJpYnV0aW9uIGluIFsjJiM4MjAzOzQ5OTddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5OTcpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IDxodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC45MS4yLi4udjAuOTEuMz4KCiMjIyBbYHYwLjkxLjJgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjkxLjIpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjkxLjEuLi52MC45MS4yKQoKIyMjIyDwn6eqIEV4cGVyaW1lbnRzIEludHJvZHVjZWQKCiMjIyMjIGBmaWx0ZXItZmxhZ2AgaW50cm9kdWNlZAoKQSBuZXcgZXhwZXJpbWVudCBuYW1lZCBbZmlsdGVyLWZsYWddKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2UvZXhwZXJpbWVudHMvI2ZpbHRlci1mbGFnKSBoYXMgYmVlbiBpbnRyb2R1Y2VkLCBhbGxvd2luZyBmb3IgZXhwZXJpbWVudGFsIHVzYWdlIG9mIHRoZSBuZXcgYC0tZmlsdGVyYCBmbGFnIGRlc2NyaWJlZCBpbiBbUkZDICMmIzgyMDM7NDA2MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2lzc3Vlcy80MDYwKS4gVGhlIGBmaWx0ZXItZmxhZ2AgZXhwZXJpbWVudCBpcyBpbmNvbXBsZXRlLCBhbmQgbWluaW1hbCBzdXBwb3J0IGZvciB0aGUgYC0tZmlsdGVyYCBmbGFnIGhhcyBiZWVuIGFkZGVkIGV4Y2x1c2l2ZWx5IHRvIHRoZSBbYGZpbmRgXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL2NsaS9jb21tYW5kcy9maW5kLykgYW5kIFtgbGlzdGBdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2UvY2xpL2NvbW1hbmRzL2xpc3QvKSBjb21tYW5kcy4KClRoZSBmaWx0ZXIgZmxhZyBhbGxvd3MgZm9yIHNvcGhpc3RpY2F0ZWQgcXVlcnlpbmcgb2YgcGFydGljdWxhciBUZXJyYWdydW50IHN0YWNrcyBhbmQgdW5pdHMgaW4gYSB3YXkgdGhhdCBpcyBjdXJyZW50bHkgb25seSBwb3NzaWJsZSB1c2luZyBhIGNvbWJpbmF0aW9uIG9mIFtg4oCUcXVldWUtYF0oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL2ZlYXR1cmVzL3J1bi1xdWV1ZS8jY29udHJvbGxpbmctdGhlLXF1ZXVlKSBwcmVmaXhlZCBmbGFncy4KCkV4YW1wbGUgZmlsdGVyIHVzYWdlIG1pZ2h0IGxvb2sgbGlrZSB0aGUgZm9sbG93aW5nOgoKYGBgYmFzaAokIHRlcnJhZ3J1bnQgZmluZCAtLWZpbHRlciAnLi9wcm9kLyoqIHwgbmFtZT13ZWInCnByb2Qvc2VydmljZXMvd2ViCmBgYAoKPiBcWyFJTVBPUlRBTlRdCj4KPiBXaGlsZSB0aGUgYGZpbHRlci1mbGFnYCBleHBlcmltZW50IGlzIGFjdGl2ZSwgeW91IHdpbGwgbmVlZCB0byBlbmFibGUgdGhlIGBmaWx0ZXItZmxhZ2AgZXhwZXJpbWVudCBmb3IgYW55IGNvbW1hbmQgdGhhdCB1c2VzIHRoZSBgZmlsdGVyLWZsYWdgLiBTZWUgW0NvbnRyb2xsaW5nIEV4cGVyaW1lbnQgTW9kZV0oaHR0cHM6Ly90ZXJyYWdydW50LWRvY3MtaWNzM2JpaW1sLWdydW50d29yay52ZXJjZWwuYXBwL2RvY3MvcmVmZXJlbmNlL2V4cGVyaW1lbnRzLyNjb250cm9sbGluZy1leHBlcmltZW50LW1vZGUpIGZvciBtb3JlIGRldGFpbHMuCj4KPiBlLmcuCj4KPiBgYGBiYXNoCj4gdGVycmFncnVudCBmaW5kIC0tZXhwZXJpbWVudCBmaWx0ZXItZmxhZyAtLWZpbHRlciAnLi9wcm9kLyoqIHwgbmFtZT13ZWInCj4gYGBgCgpZb3UgY2FuIGxlYXJuIG1vcmUgYWJvdXQgZmlsdGVycywgaW5jbHVkaW5nIGRvY3VtZW50YXRpb24gb24gdGhlIHN5bnRheCBhbmQgZXhhbXBsZXMgb2YgZWFjaCB0eXBlIG9mIGZpbHRlciBpbiB0aGUgW2RlZGljYXRlZCBmZWF0dXJlIGRvY3VtZW50YXRpb24gZm9yIGZpbHRlcnNdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9mZWF0dXJlcy9maWx0ZXIvKS4KCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gZmVhdDogSW50cm9kdWNlIGBmaWx0ZXItZmxhZ2AgZXhwZXJpbWVudCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NDk2OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDk2OSkKLSBjaG9yZTogQWRkaW5nIGNoZWNrYm94IGZvciByZXByb2R1Y3Rpb24gYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzQ5ODBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5ODApCi0gZG9jczogVXNlIHNwZWNpYWwgZGFyay9saWdodCBtb2RlIGZvciBUZXJyYWdydW50IGxvZ29zIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbIyYjODIwMzs0OTc1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80OTc1KQotIGRvY3M6IEZpeGVzIG92ZXJmbG93IGlzc3VlIG9uIHRoZSByaWdodCBzaWRlYmFyIGJ5IFtAJiM4MjAzO2thcmxjYXJzdGVuc2VuXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20va2FybGNhcnN0ZW5zZW4pIGluIFsjJiM4MjAzOzQ5NzJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5NzIpCi0gZG9jczogRG9jdW1lbnRpbmcgYGZpbHRlci1mbGFnYCBleHBlcmltZW50IGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbIyYjODIwMzs0OTczXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80OTczKQotIGRvY3M6IEZpeGluZyBGbGFnIENhcmQgaWNvbnMgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzQ5NzRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5NzQpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IDxodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC45MS4xLi4udjAuOTEuMj4KCiMjIyBbYHYwLjkxLjFgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjkxLjEpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjkxLjAuLi52MC45MS4xKQoKIyMjIyDwn6e5IENob3JlcwoKIyMjIyMgVXBkYXRlZCBkZXBlbmRlbmNpZXMKClVwZ3JhZGVkIG11bHRpcGxlIEdvbGFuZyBkZXBlbmRlbmNpZXMgdG8gdGhlIGxhdGVzdCBzdGFibGUgdmVyc2lvbnM6CgotIFVwZGF0ZWQgY2xvdWQuZ29vZ2xlLmNvbS9nby9zdG9yYWdlIHRvIHYxLjU3LjAKLSBVcGRhdGVkIGdpdGh1Yi5jb20vYXdzL2F3cy1zZGstZ28tdjIgdG8gdjEuMzkuMgotIFVwZGF0ZWQgZ2l0aHViLmNvbS9nZXRzb3BzL3NvcHMvdjMgdG8gdjMuMTEuMAotIFVwZGF0ZWQgZ2l0aHViLmNvbS9nb2Zycy9mbG9jayB0byB2MC4xMy4wCi0gVXBkYXRlZCBnaXRodWIuY29tL2dydW50d29yay1pby90ZXJyYXRlc3QgdG8gdjAuNTEuMAotIFVwZGF0ZWQgZ2l0aHViLmNvbS9oYXNoaWNvcnAvZ28tZ2V0dGVyIHRvIHYxLjguMgotIFVwZGF0ZWQgZ29sYW5nLm9yZy94L21vZCB0byB2MC4yOS4wCi0gVXBkYXRlZCBnb2xhbmcub3JnL3gvb2F1dGgyIHRvIHYwLjMyLjAKLSBVcGRhdGVkIGdvbGFuZy5vcmcveC9zeXMgdG8gdjAuMzcuMAotIFVwZGF0ZWQgZ29sYW5nLm9yZy94L3Rlcm0gdG8gdjAuMzYuMAotIFVwZGF0ZWQgZ29sYW5nLm9yZy94L3RleHQgdG8gdjAuMzAuMAotIFVwZGF0ZWQgZ29vZ2xlLmdvbGFuZy5vcmcvYXBpIHRvIHYwLjI1Mi4wCi0gVXBkYXRlZCBnb29nbGUuZ29sYW5nLm9yZy9ncnBjIHRvIHYxLjc2LjAKLSBVcGRhdGVkIGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmIHRvIHYxLjM2LjEwCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotIGNob3JlOiBVbmRvIFN0YXJsaWdodCBwYXRjaCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NDk2NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDk2NCkKLSBjaG9yZTogQnVtcCBCdW4gZGVwZW5kZW5jaWVzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbIyYjODIwMzs0OTY1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80OTY1KQotIGNob3JlOiBSZWZhY3RvciBvdXQgYGNvbXBvbmVudGAgcGFja2FnZSBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NDk2M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDk2MykKLSBmZWF0OiBBZGRpbmcgYGZpbHRlcmAgcGFja2FnZSBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NDk1OF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDk1OCkKLSBjaG9yZTogbXVsdGlwbGUgZGVwZW5kZW5jaWVzIHVwZGF0ZSBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbIyYjODIwMzs0OTY4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80OTY4KQoKKipGdWxsIENoYW5nZWxvZyoqOiA8aHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuOTEuMC4uLnYwLjkxLjE+CgojIyMgW2B2MC45MS4wYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC45MS4wKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC45MC4yLi4udjAuOTEuMCkKClJlbW92YWwgb2YgYmVoYXZpb3Igd2hlcmUgaW5wdXRzIGFyZSByZWFkIGZyb20gZGVwZW5kZW5jaWVzCgojIyMg8J+boO+4jyBCcmVha2luZyBDaGFuZ2VzCgojIyMjIyAqKlJlbW92YWwgb2YgYmVoYXZpb3Igd2hlcmUgaW5wdXRzIGFyZSByZWFkIGZyb20gZGVwZW5kZW5jaWVzKioKClRlcnJhZ3J1bnQgbm8gbG9uZ2VyIGV4cG9zZXMgKipkZXBlbmRlbmN5IGlucHV0cyoqIGFzIGFjY2Vzc2libGUgdmFsdWVzLgoKVGhpcyBjaGFuZ2UgaW1wcm92ZXMgcGVyZm9ybWFuY2UgYW5kIHNpbXBsaWZpZXMgZGVwZW5kZW5jeSBoYW5kbGluZyBieSByZW1vdmluZyBhIGZlYXR1cmUgdGhhdCBzaWduaWZpY2FudGx5IHNsb3dlZCBjb25maWd1cmF0aW9uIHBhcnNpbmcgZHVlIHRvIGEgcmVxdWlyZW1lbnQgZm9yIHJlY3Vyc2l2ZSBwYXJzaW5nIG9mIGRlcGVuZGVuY2llcyBvZiBkZXBlbmRlbmNpZXMgZm9yIGV2ZXJ5IGRlcGVuZGVudC4KCklmIHlvdXIgY29uZmlndXJhdGlvbnMgY3VycmVudGx5IGFjY2VzcyBkZXBlbmRlbmN5IGlucHV0cyBsaWtlIHRoaXM6CgpgYGBoY2wKZGVwZW5kZW5jeSAiZm9vIiB7CiAgY29uZmlnX3BhdGggPSAiLi4vZm9vIgp9CgppbnB1dHMgPSB7CiAgbXlfaW5wdXQgPSBkZXBlbmRlbmN5LmZvby5pbnB1dHMuYW5faW5wdXRfZnJvbV9mb28KfQoKYGBgCgpZb3XigJlsbCBuZWVkIHRvIHVwZGF0ZSB0aGVtIHRvIHJlZmVyZW5jZSAqKm91dHB1dHMqKiBpbnN0ZWFkOgoKYGBgaGNsCmRlcGVuZGVuY3kgImZvbyIgewogIGNvbmZpZ19wYXRoID0gIi4uL2ZvbyIKfQoKaW5wdXRzID0gewogIG15X2lucHV0ID0gZGVwZW5kZW5jeS5mb28ub3V0cHV0cy5hbl9vdXRwdXRfZnJvbV9mb28KfQoKYGBgCgpBY2Nlc3Npbmcgb3V0cHV0cyByZW1haW5zIHRoZSBzdXBwb3J0ZWQgYW5kIHJlY29tbWVuZGVkIHdheSB0byBzaGFyZSBkYXRhIGJldHdlZW4gbW9kdWxlcy4KCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gZmVhdDogcmVtb3ZhbCBvZiBiZWhhdmlvciB3aGVyZSBpbnB1dHMgYXJlIHJlYWQgZnJvbSBkZXBlbmRlbmNpZXMgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gWyMmIzgyMDM7NDk2MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDk2MCkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogPGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjkwLjIuLi52MC45MS4wPgoKIyMjIFtgdjAuOTAuMmBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuOTAuMikKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuOTAuMS4uLnYwLjkwLjIpCgojIyMjIOKcqCBOZXcgRmVhdHVyZXMKCiMjIyMjIEFkZGVkIGAtLXRlcnJhZ3J1bnQtbm8tY2FjaGVgIGZsYWcgZm9yIGBydW5fY21kYAoKVGhlIGBydW5fY21kYCBjb21tYW5kIG5vdyBzdXBwb3J0cyBhIG5ldyBmbGFnLCBgLS10ZXJyYWdydW50LW5vLWNhY2hlYCwgd2hpY2ggZGlzYWJsZXMgY2FjaGluZyBvZiBjb21tYW5kIGV4ZWN1dGlvbiBvdXRwdXQuCgpUaGlzIG9wdGlvbiBpcyB1c2VmdWwgd2hlbiB5b3Ugd2FudCB0byBlbnN1cmUgdGhhdCBlYWNoIGNvbW1hbmQgcnVuIHByb2R1Y2VzIGZyZXNoIHJlc3VsdHMsIGVzcGVjaWFsbHkgaW4gZHluYW1pYyBlbnZpcm9ubWVudHMgb3Igd2hlbiB3b3JraW5nIHdpdGggZnJlcXVlbnRseSBjaGFuZ2luZyBleHRlcm5hbCBkYXRhLgoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSBmZWF0OiBhZGQgYC0tdGVycmFncnVudC1uby1jYWNoZWAgcGFyYW1ldGVyIGZvciBgcnVuX2NtZGAgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gWyMmIzgyMDM7NDk1MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDk1MSkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogPGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjkwLjEuLi52MC45MC4yPgoKIyMjIFtgdjAuOTAuMWBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuOTAuMSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuOTAuMC4uLnYwLjkwLjEpCgojIyMjIOKcqCBOZXcgRmVhdHVyZXMKCiMjIyMjIGBoY2wgZm10YCBub3cgc3VwcG9ydHMgYC0tcXVldWVgIGZsYWdzCgpUaGUgYGhjbCBmbXRgIGNvbW1hbmQgbm93IHN1cHBvcnRzIGAtLXF1ZXVlLWAgcHJlZml4ZWQgZmxhZ3MgKGUuZy4gW2AtLXF1ZXVlLWV4Y2x1ZGUtZGlyYF0oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL3JlZmVyZW5jZS9jbGkvY29tbWFuZHMvaGNsL2ZtdC8jcXVldWUtZXhjbHVkZS1kaXIpKS4KCiMjIyMg8J+QmyBCdWcgRml4ZXMKCiMjIyMjIERpc2NvdmVyeSBpbiBgcnVuYCBjb21tYW5kIGRpc2NvdmVycyBoaWRkZW4gZGlyZWN0b3JpZXMKCldoZW4gZGlzY292ZXJpbmcgdW5pdHMgZm9yIHRoZSBgcnVuYCBjb21tYW5kLCBUZXJyYWdydW50IHdpbGwgbm93IHNlYXJjaCB0aHJvdWdoIChtb3N0KSBoaWRkZW4gZGlyZWN0b3JpZXMuCgpJdCB3aWxsIHN0aWxsIGF2b2lkIHBlcmZvcm1pbmcgZGlzY292ZXJ5IGluIHRoZSBmb2xsb3dpbmcgaGlkZGVuIGRpcmVjdG9yaWVzOgoKLSBgLmdpdGAKLSBgLnRlcnJhZm9ybWAKLSBgLnRlcnJhZ3J1bnQtY2FjaGVgCgpUbyBtYW51YWxseSBmb3JjZSBvciBzdXBwcmVzcyBkaXNjb3ZlcnksIHVzZSBbYC0tcXVldWUtaW5jbHVkZS1kaXJgXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL2NsaS9jb21tYW5kcy9oY2wvZm10LyNxdWV1ZS1leGNsdWRlLWRpcikgYW5kIFtgLS1xdWV1ZS1leGNsdWRlLWRpcmBdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2UvY2xpL2NvbW1hbmRzL2hjbC9mbXQvI3F1ZXVlLWV4Y2x1ZGUtZGlyKSByZXNwZWN0aXZlbHkuCgojIyMjIyBgLS1xdWV1ZS1pZ25vcmUtZXJyb3JzYCBubyBsb25nZXIgYnJlYWtzIERBRyByZXNvbHV0aW9uCgpBIGJ1ZyBpbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgW2AtLXF1ZXVlLWlnbm9yZS1lcnJvcnNgXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL2NsaS9jb21tYW5kcy9ydW4vI3F1ZXVlLWlnbm9yZS1lcnJvcnMpIHJlc3VsdGVkIGluIHRoZSBmbGFnIGFsc28gcHJldmVudGluZyB0aGUgcHJvcGVyIHJlc29sdXRpb24gb2YgdGhlIFtEaXJlY3RlZCBBY3ljbGljIEdyYXBoIChEQUcpXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvZ2V0dGluZy1zdGFydGVkL3Rlcm1pbm9sb2d5LyNkaXJlY3RlZC1hY3ljbGljLWdyYXBoLWRhZykgd2hlbiBzdXBwcmVzc2luZyBlcnJvcnMuCgpUaGlzIGhhcyBiZWVuIGZpeGVkLgoKIyMjIyMgYC0tdGYtcGF0aGAgcmVzcGVjdGVkIHRocm91Z2ggZGVwZW5kZW5jaWVzCgpBIGJ1ZyBpbiB0aGUgcHJlY2VkZW5jZSByZXNvbHV0aW9uIG9mIHRoZSBbYHRlcnJhZm9ybV9iaW5hcnlgIEhDTCBhdHRyaWJ1dGVdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2UvaGNsL2F0dHJpYnV0ZXMvI3RlcnJhZm9ybV9iaW5hcnkpIGFuZCB0aGUgW2AtLXRmLXBhdGhgIGZsYWddKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2UvY2xpL2NvbW1hbmRzL3J1bi8jdGYtcGF0aCkgcmVzdWx0ZWQgaW4gdGhlIGRlZmF1bHQgdmFsdWUgb2YgYHRlcnJhZm9ybV9iaW5hcnlgIHRha2luZyBhZmZlY3QgKGB0b2Z1YCBpZiBib3RoIGB0b2Z1YCBhbmQgYHRlcnJhZm9ybWAgYXJlIGluc3RhbGxlZCkgd2hlbiBgdGVycmFmb3JtX2JpbmFyeWAgd2FzIG5vdCBzcGVjaWZpZWQgaW4gZGVwZW5kZW5jaWVzLgoKVGhpcyBidWcgaGFzIGJlZW4gcmVzb2x2ZWQsIGFuZCB0aGUgYC0tdGYtcGF0aGAgZmxhZyB3aWxsIGJlIHJlc3BlY3RlZCBpbiBkZXBlbmRlbmNpZXMgYXMgd2VsbC4KCiMjIyMjIFNwdXJpb3VzIGVycm9ycyByZXNvbHZlZCBpbiBgcmVhZF90ZXJyYWdydW50X2NvbmZpZygpYAoKQSBidWcgY2F1c2VkIHRoZSBbYHJlYWRfdGVycmFncnVudF9jb25maWcoKWBdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2UvaGNsL2Z1bmN0aW9ucy8jcmVhZF90ZXJyYWdydW50X2NvbmZpZykgSENMIGZ1bmN0aW9uIHRvIHJldHVybiBzcHVyaW91cyBlcnJvcnMgd2hlbiB1c2VkIGluIGEgY29uZmlndXJhdGlvbiBwYXJzZWQgZHVyaW5nIHRoZSBkaXNjb3ZlcnkgcGhhc2Ugb2YgY29uZmlndXJhdGlvbiByZXNvbHV0aW9uIG9mIGEgcnVuLgoKVGhpcyBoYXMgYmVlbiBmaXhlZC4KCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gZmVhdDogQWRkaW5nIHF1ZXVlIGZsYWdzIHRvIGBoY2wgZm10YCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NDk1MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDk1MCkKLSBmaXg6IGRpc2NvdmVyeSBvZiBoaWRkZW4gZGlyZWN0b3JpZXMgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gWyMmIzgyMDM7NDk0NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDk0NSkKLSBmaXg6IEZpeGluZyBgLS1xdWV1ZS1pZ25vcmUtZXJyb3JzYCByZXN1bHRpbmcgaW4gaWdub3JlZCBEQUcgb3JkZXIgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzQ5NTNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5NTMpCi0gZml4OiBFbnN1cmUgYC0tdGYtcGF0aGAgaXMgdXNlZCBpbiBkZXBlbmRlbmNpZXMgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzQ5NTVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5NTUpCi0gZml4OiBQcmV2ZW50IHBhcnNlIGVycm9ycyB3aGVuIHVzaW5nIGByZWFkX3RlcnJhZ3J1bnRfY29uZmlnKClgIGR1cmluZyBkaXNjb3ZlcnkgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzQ5NTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5NTYpCi0gZG9jczogVXBkYXRpbmcgZG9jcyBmb3IgYC0tb3V0LWRpcmAgYW5kIGAtLWpzb24tb3V0LWRpcmAgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzQ5NTddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5NTcpCi0gZG9jczogUGlwZWxpbmVzIHdvbid0IGJpdGUgbGFuZGluZyBwYWdlIGJ5IFtAJiM4MjAzO2thcmxjYXJzdGVuc2VuXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20va2FybGNhcnN0ZW5zZW4pIGluIFsjJiM4MjAzOzQ5NDhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5NDgpCi0gZG9jczogRml4aW5nIGZvcm0gYnkgW0AmIzgyMDM7a2FybGNhcnN0ZW5zZW5dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9rYXJsY2Fyc3RlbnNlbikgaW4gWyMmIzgyMDM7NDk1NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDk1NCkKLSBjaG9yZTogZmFpbGluZyB0ZXN0cyBmaXhlcyBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbIyYjODIwMzs0OTQ0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80OTQ0KQoKKipGdWxsIENoYW5nZWxvZyoqOiA8aHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuOTAuMC4uLnYwLjkwLjE+CgojIyMgW2B2MC45MC4wYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC45MC4wKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC44OS40Li4udjAuOTAuMCkKClJlbW92YWwgb2YgZGVwcmVjYXRlZCBjb21tYW5kcwoKVGhpcyBpcyB0aGUgbmV4dCBzdGVwIG9uIHRoZSByb2FkIHRvIFRlcnJhZ3J1bnQgMS4wLCBjb21wbGV0aW5nIHRoZSBUZXJyYWdydW50IENMSSBSZWRlc2lnbi4gUmVhZCB0aGUgW0NMSSBSZWRlc2lnbiBtaWdyYXRpb24gZ3VpZGVdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9taWdyYXRlL2NsaS1yZWRlc2lnbi8pIGZvciBndWlkYW5jZSBvbiBhZGFwdGluZyB0byB0aGVzZSBicmVha2luZyBjaGFuZ2VzLgoKV2UgYW50aWNpcGF0ZSBubyBmdXJ0aGVyIGJyZWFraW5nIGNoYW5nZXMgdG8gdGhlIENMSSBwcmlvciB0byB0aGUgcmVsZWFzZSBvZiBUZXJyYWdydW50IDEuMCwgd2hlcmUgdGhlIENMSSB3aWxsIHJlbWFpbiBzdGFibGUgd2l0aG91dCBicmVha2luZyBjaGFuZ2VzIHVudGlsIGF0IGxlYXN0IFRlcnJhZ3J1bnQgMi4wLgoKRm9yIGEgZnVsbCBsaXN0IG9mIGRlcHJlY2F0ZWQgZmVhdHVyZXMgdGhhdCB3aWxsIGJlIHJlbW92ZWQgcHJpb3IgdG8gdGhlIHJlbGVhc2Ugb2YgVGVycmFncnVudCAxLjAsIHNlZSB0aGUgW3JlbW92YWwgc2NoZWR1bGVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9pc3N1ZXMvMzUzNSkuCgojIyMg8J+boO+4jyBCcmVha2luZyBDaGFuZ2VzCgojIyMjIyBSZW1vdmFsIG9mIERlcHJlY2F0ZWQgQ29tbWFuZHMKClRoZSBmb2xsb3dpbmcgZGVwcmVjYXRlZCBDTEkgY29tbWFuZHMgaGF2ZSBiZWVuIHJlbW92ZWQgdG8gc3RyZWFtbGluZSB0aGUgY29tbWFuZCBsaW5lIEFQSSBhaGVhZCBvZiAxLjAuCgpVc2UgdGhlIG5ldyBjb21tYW5kcyBpbnRyb2R1Y2VkIGR1cmluZyB0aGUgQ0xJIHJlZGVzaWduIHRoYXQgcmVwbGFjZSB0aGVtOgoKLSBgdGVycmFncnVudCB0ZXJyYWdydW50LWluZm9gIOKGkiBgdGVycmFncnVudCBpbmZvIHByaW50YAotIGB0ZXJyYWdydW50IGhjbGZtdGAg4oaSIGB0ZXJyYWdydW50IGhjbCBmbXRgCi0gYHRlcnJhZ3J1bnQgaGNsdmFsaWRhdGVgIOKGkiBgdGVycmFncnVudCBoY2wgdmFsaWRhdGVgCi0gYHRlcnJhZ3J1bnQgdmFsaWRhdGUtaW5wdXRzYCDihpIgYHRlcnJhZ3J1bnQgaGNsIHZhbGlkYXRlIC0taW5wdXRzYAotIGB0ZXJyYWdydW50IHJlbmRlci1qc29uYCDihpIgYHRlcnJhZ3J1bnQgcmVuZGVyIC0tanNvbiAtd2AKLSBgdGVycmFncnVudCBncmFwaC1kZXBlbmRlbmNpZXNgIOKGkiBgdGVycmFncnVudCBkYWcgZ3JhcGhgCi0gYHRlcnJhZ3J1bnQgb3V0cHV0LW1vZHVsZS1ncm91cHNgIOKGkiBgdGVycmFncnVudCBmaW5kIC0tZGFnIC0tanNvbmAKCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gY2hvcmU6IHJlbW92YWwgb2YgZGVwcmVjYXRlZCBjb21tYW5kcyBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbIyYjODIwMzs0OTE4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80OTE4KQotIGNob3JlOiBSZW1vdmFsIG9mIG91dHB1dC1tb2R1bGUtZ3JvdXBzIGNsaSBjb21tYW5kIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFsjJiM4MjAzOzQ5MzddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5MzcpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IDxodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC44OS40Li4udjAuOTAuMD4KCiMjIyBbYHYwLjg5LjRgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjg5LjQpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjg5LjMuLi52MC44OS40KQoKIyMjIyDwn5CbwqBCdWcgRml4ZXMKCiMjIyMjIENvbGxlY3Rpb24gb2YgZXhpdCBjb2RlIGZvciBgLWRldGFpbGVkLWV4aXRjb2RlYCBiZWhhdmlvciBpbiBgcnVuIC0tYWxsYAoKSW1wcm92ZWQgcnVuLWFsbCBwbGFuIC1kZXRhaWxlZC1leGl0Y29kZSBhZ2dyZWdhdGlvbiB0byBjb3JyZWN0bHkgcmV0dXJuIDIgd2hlbiBhbnkgdW5pdCBoYXMgZHJpZnQsIGV2ZW4gaWYgYW5vdGhlciB1bml0IGhpdHMgYSByZXRyeWFibGUgZXJyb3IuCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotIGZpeChydW4tYWxsKTogY29ycmVjdGVkIC1kZXRhaWxlZC1leGl0Y29kZSBhZ2dyZWdhdGlvbiAgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gWyMmIzgyMDM7NDkzMl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDkzMikKLSBkb2NzOiBzdGFjayBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uIHVwZGF0ZSBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbIyYjODIwMzs0OTMwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80OTMwKQotIGRvY3M6IEZvcm0gdXBkYXRlcyBieSBbQCYjODIwMztrYXJsY2Fyc3RlbnNlbl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2thcmxjYXJzdGVuc2VuKSBpbiBbIyYjODIwMzs0OTExXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80OTExKQotIGRvY3M6IEZpeGluZyB1cCBzaWdudXAgZm9ybSBieSBbQCYjODIwMztrYXJsY2Fyc3RlbnNlbl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2thcmxjYXJzdGVuc2VuKSBpbiBbIyYjODIwMzs0OTMzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80OTMzKQoKKipGdWxsIENoYW5nZWxvZyoqOiA8aHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuODkuMy4uLnYwLjg5LjQ+CgojIyMgW2B2MC44OS4zYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC44OS4zKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC44OS4yLi4udjAuODkuMykKCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gZml4OiBBZGRlZCBtaXNzaW5nIGZsYWdzIHRvIHRoZSBgaGNsYCBjb21tYW5kIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbIyYjODIwMzs0OTI3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80OTI3KQoKKipGdWxsIENoYW5nZWxvZyoqOiA8aHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuODkuMi4uLnYwLjg5LjM+CgojIyMgW2B2MC44OS4yYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC44OS4yKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC44OS4xLi4udjAuODkuMikKCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gZml4OiBGaXhpbmcgVGVycmFsaXRoIHRvIFRlcnJhZ3J1bnQgaW50ZWdyYXRpb24gdGVzdCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NDkwOV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDkwOSkKLSBmaXg6IEZpeGluZyBleHRlcm5hbCBkZXBlbmRlbmN5IHJlc29sdXRpb24gYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzQ5MjZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5MjYpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IDxodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC44OS4xLi4udjAuODkuMj4KCiMjIyBbYHYwLjg5LjFgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjg5LjEpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjg5LjAuLi52MC44OS4xKQoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSBmaXg6IEZpeGVkIGJ1ZyB3aGVyZSBkaXNjb3Zlcnkgd2FybmVkIHRoYXQgb3V0cHV0cyB3ZXJlIG1vY2tlZC4gYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzQ5MjNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5MjMpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IDxodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC44OS4wLi4udjAuODkuMT4KCiMjIyBbYHYwLjg5LjBgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjg5LjApCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjg4LjEuLi52MC44OS4wKQoKU2V2ZXJhbCBleHBlcmltZW50YWwgZmVhdHVyZXMgaGF2ZSBiZWVuIG1hZGUgZ2VuZXJhbGx5IGF2YWlsYWJsZS4KCiMjIyMg8J+boO+4jyBCcmVha2luZyBDaGFuZ2VzCgojIyMjIyBSdW5uZXItcG9vbAoKVGVycmFncnVudCBub3cgc3VwcG9ydHMgdGhlIFJ1bm5lciBQb29sIGNvbmN1cnJlbmN5IG1vZGVsLCByZXBsYWNpbmcgdGhlIHRyYWRpdGlvbmFsIGdyb3VwLWJhc2VkIGNvbmN1cnJlbmN5IG1vZGVsIHdpdGggYSBkeW5hbWljIHNjaGVkdWxlciBieSBkZWZhdWx0LgoKSW5zdGVhZCBvZiB3YWl0aW5nIGZvciBncm91cHMgb2YgdW5pdHMgdGhhdCBibG9jayBkb3duc3RyZWFtIHVuaXRzIHRvIGNvbXBsZXRlIHRoZWlyIHJ1bnMsIHRoZSBSdW5uZXIgUG9vbCBleGVjdXRlcyBlYWNoIHVuaXQgYXMgc29vbiBhcyBpdHMgZGVwZW5kZW5jaWVzIChvciBkZXBlbmRlbnRzIGZvciBkZXN0cm95cykgYXJlIHJlc29sdmVkLiBUaGlzIGltcHJvdmVzIGVmZmljaWVuY3ksIHJlZHVjZXMgYm90dGxlbmVja3MsIGFuZCBsaW1pdHMgdGhlIGltcGFjdCBvZiBpbmRpdmlkdWFsIGZhaWx1cmVzIG9uIHRoZSBydW4gb2YgdGhlIGVudGlyZSBxdWV1ZS4KCiMjIyMjIOKcqE5ldyBGZWF0dXJlcwoKLSBEeW5hbWljYWxseSBzY2hlZHVsZXMgVW5pdHMgYXMgc29vbiBhcyBkZXBlbmRlbmNpZXMgKG9yIGRlcGVuZGVudHMpIGFyZSBzYXRpc2ZpZWQKLSBJbXByb3ZlcyB0aHJvdWdocHV0IGZvciBsYXJnZSBzdGFja3MKLSBQcm92aWRlcyBiZXR0ZXIgZmF1bHQtaXNvbGF0aW9uIGZvciBmYWlsZWQgdW5pdHMKCjxwIGFsaWduPSJjZW50ZXIiPgoKPGltZyB3aWR0aD0iNzg5IiBoZWlnaHQ9IjQ4MCIgYWx0PSJpbWFnZSIgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vdXNlci1hdHRhY2htZW50cy9hc3NldHMvN2Q4OGU0MzctMmQ1Zi00NDc3LTg2ZWItMDczM2I3MDYyZjBkIiAvPgoKPC9wPgoKIyMjIyMgUmVwb3J0CgpUaGUgZXhwZXJpbWVudGFsIFJlcG9ydCBmZWF0dXJlIGlzIG5vdyBzdGFibGUgYW5kIGVuYWJsZWQgYnkgZGVmYXVsdC4KCkV2ZXJ5IFRlcnJhZ3J1bnQgcnVuIHdpbGwgbm93IGVtaXQgYSBzaG9ydCBzdW1tYXJ5IGF0IHRoZSBlbmQgb2YgdGhlIHJ1biB0aGF0IGxvb2tzIGxpa2UgdGhlIGZvbGxvd2luZyBieSBkZWZhdWx0OgoKYGBgYmFzaAokIHRlcnJhZ3J1bnQgcnVuIC0tYWxsIHBsYW4KCiMgT21pdHRlZCBmb3IgYnJldml0eS4uLgoK4p2v4p2vIFJ1biBTdW1tYXJ5ICAzIHVuaXRzICA2Mm1zCiAgIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgAogICBTdWNjZWVkZWQgICAgMwoKYGBgCgpUaGlzIHN1bW1hcnkgd2lsbCBnaXZlIGEgaGlnaC1sZXZlbCBvdmVydmlldyBvZiB0aGUgcnVuIHJlc3VsdHMgZm9yIHVuaXRzIGluIGEgZ2l2ZW4gVGVycmFncnVudCBydW4uCgpZb3UgY2FuIG9wdGlvbmFsbHkgcmVxdWVzdCBhIENTViBvciBKU09OIHJlcG9ydCBvZiBydW5zIGFzIHdlbGwsIGdpdmluZyB5b3UgZGV0YWlsZWQgaW5zaWdodHMgYXMgdG8gdGhlIHBlcmZvcm1hbmNlIG9mIGVhY2ggcnVuIHVzaW5nIHRoZSBgLS1yZXBvcnRgIGZsYWc6CgpgYGBiYXNoCnRlcnJhZ3J1bnQgcnVuIC0tYWxsIHBsYW4gLS1yZXBvcnQtc2NoZW1hLWZpbGUgcmVwb3J0LnNjaGVtYS5jc3YKYGBgCgpgYGBjc3YKTmFtZSxTdGFydGVkLEVuZGVkLFJlc3VsdCxSZWFzb24sQ2F1c2UKZmlyc3QtZXhjbHVkZSwyMDI1LTA2LTA1VDE2OjI4OjQxLTA0OjAwLDIwMjUtMDYtMDVUMTY6Mjg6NDEtMDQ6MDAsZXhjbHVkZWQsZXhjbHVkZSBibG9jaywKc2Vjb25kLWV4Y2x1ZGUsMjAyNS0wNi0wNVQxNjoyODo0MS0wNDowMCwyMDI1LTA2LTA1VDE2OjI4OjQxLTA0OjAwLGV4Y2x1ZGVkLGV4Y2x1ZGUgYmxvY2ssCmZpcnN0LWZhaWx1cmUsMjAyNS0wNi0wNVQxNjoyODo0MS0wNDowMCwyMDI1LTA2LTA1VDE2OjI4OjQyLTA0OjAwLGZhaWxlZCxydW4gZXJyb3IsCmZpcnN0LXN1Y2Nlc3MsMjAyNS0wNi0wNVQxNjoyODo0MS0wNDowMCwyMDI1LTA2LTA1VDE2OjI4OjQxLTA0OjAwLHN1Y2NlZWRlZCwsCnNlY29uZC1mYWlsdXJlLDIwMjUtMDYtMDVUMTY6Mjg6NDEtMDQ6MDAsMjAyNS0wNi0wNVQxNjoyODo0Mi0wNDowMCxmYWlsZWQscnVuIGVycm9yLApzZWNvbmQtc3VjY2VzcywyMDI1LTA2LTA1VDE2OjI4OjQxLTA0OjAwLDIwMjUtMDYtMDVUMTY6Mjg6NDEtMDQ6MDAsc3VjY2VlZGVkLCwKc2Vjb25kLWVhcmx5LWV4aXQsMjAyNS0wNi0wNVQxNjoyODo0Mi0wNDowMCwyMDI1LTA2LTA1VDE2OjI4OjQyLTA0OjAwLGVhcmx5IGV4aXQscnVuIGVycm9yLApmaXJzdC1lYXJseS1leGl0LDIwMjUtMDYtMDVUMTY6Mjg6NDItMDQ6MDAsMjAyNS0wNi0wNVQxNjoyODo0Mi0wNDowMCxlYXJseSBleGl0LHJ1biBlcnJvciwKYGBgCgpgYGBiYXNoCnRlcnJhZ3J1bnQgcnVuIC0tYWxsIHBsYW4gLS1yZXBvcnQtc2NoZW1hLWZpbGUgcmVwb3J0LnNjaGVtYS5qc29uCmBgYAoKYGBganNvbgpbCiAgewogICAgIk5hbWUiOiAiZmlyc3QtZXhjbHVkZSIsCiAgICAiU3RhcnRlZCI6ICIyMDI1LTA2LTA1VDE2OjI4OjQxLTA0OjAwIiwKICAgICJFbmRlZCI6ICIyMDI1LTA2LTA1VDE2OjI4OjQxLTA0OjAwIiwKICAgICJSZXN1bHQiOiAiZXhjbHVkZWQiLAogICAgIlJlYXNvbiI6ICJleGNsdWRlIGJsb2NrIgogIH0sCiAgewogICAgIk5hbWUiOiAiZmlyc3Qtc3VjY2VzcyIsCiAgICAiU3RhcnRlZCI6ICIyMDI1LTA2LTA1VDE2OjI4OjQxLTA0OjAwIiwKICAgICJFbmRlZCI6ICIyMDI1LTA2LTA1VDE2OjI4OjQxLTA0OjAwIiwKICAgICJSZXN1bHQiOiAic3VjY2VlZGVkIgogIH0KXQoKYGBgCgojIyMjIyDinKhOZXcgRmVhdHVyZXMKCi0gR2VuZXJhdGVzIGRldGFpbGVkIHJ1biByZXBvcnRzIChDU1YgYW5kIEpTT04gZm9ybWF0cyBzdXBwb3J0ZWQpCi0gRGlzcGxheXMgcnVuIHN1bW1hcmllcyBkaXJlY3RseSBpbiB0aGUgQ0xJIG91dHB1dAotIEFsbG93cyBkaXNhYmxpbmcgc3VtbWFyaWVzIGlmIGRlc2lyZWQKClRvIGxlYXJuIG1vcmUgYWJvdXQgdGhlIFJ1biBSZXBvcnQgZmVhdHVyZSwgcmVhZCB0aGUgZGVkaWNhdGVkIGd1aWRlIG9uIFJ1biBSZXBvcnRzIFtoZXJlXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvZmVhdHVyZXMvcnVuLXJlcG9ydC8pLgoKIyMjIyMg8J+UpyBNaWdyYXRpb24gR3VpZGUKCk5vIGFjdGlvbiBpcyByZXF1aXJlZAoKVG8gZGlzYWJsZSBzdW1tYXJ5IG91dHB1dCBleHBsaWNpdGx5LCB1c2UgYC0tZGlzYWJsZS1yZXBvcnQtc3VtbWFyeWA6CgpgYGBiYXNoCnRlcnJhZ3J1bnQgcnVuIC0tYWxsIHBsYW4gLS1kaXNhYmxlLXJlcG9ydC1zdW1tYXJ5CmBgYAoKIyMjIyMgQXV0byBPcGVuVG9mdSBQcm92aWRlciBDYWNoZSBEaXJlY3RvcnkKClRlcnJhZ3J1bnQgbm93IGF1dG9tYXRpY2FsbHkgY29uZmlndXJlcyBPcGVuVG9mdeKAmXMgKipuYXRpdmUgcHJvdmlkZXIgY2FjaGluZyBtZWNoYW5pc20qKiBieSBkZWZhdWx0IHdoZW4gcnVubmluZyB3aXRoIE9wZW5Ub2Z1ID4gPSAxLjEwLgoKTm90ZSB0aGF0IGlmIHlvdSBhcmUgdXNpbmcgVGVycmFmb3JtLCB5b3Ugd2lsbCBub3QgYmUgYWJsZSB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzIG5ldyBmZWF0dXJlLgoKVGhpcyBmZWF0dXJlIGlzIG9ubHkgcG9zc2libGUgaW4gT3BlblRvZnUgZHVlIHRvIHRoZSBoYXJkIHdvcmsgYW5kIGNvb3JkaW5hdGlvbiB3aXRoIHRoZSBPcGVuVG9mdSB0ZWFtIHRvIGVuc3VyZSB0aGF0IGNvbmN1cnJlbnQgYWNjZXNzIHRvIHRoZSBwcm92aWRlciBjYWNoZSBkaXJlY3RvcnkgaXMgc2FmZSBmb3IgYWxsIE9wZW5Ub2Z1IHVzZXJzLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhleSB1c2UgVGVycmFncnVudC4KCjxwIGFsaWduPSJjZW50ZXIiPgo8aW1nIHdpZHRoPSI5MTIiIGhlaWdodD0iNDg2IiBhbHQ9IlNjcmVlbnNob3QgMjAyNS0wNi0yNSBhdCAxMiAzOCAwNeKAr1BNIiBzcmM9Imh0dHBzOi8vZ2l0aHViLmNvbS91c2VyLWF0dGFjaG1lbnRzL2Fzc2V0cy8yMTRjZmY4ZC00ZmJiLTRlNzAtYWE5Ni1jMDI2ZTkxMDM4ZDciIC8+CjwvcD4KCiMjIyMjIOKcqE5ldyBGZWF0dXJlcwoKLSBBdXRvbWF0aWNhbGx5IHNldHMgdGhlIGBURl9QTFVHSU5fQ0FDSEVfRElSYCBlbnZpcm9ubWVudCB2YXJpYWJsZQotIFVzZXMgT3BlblRvZnXigJlzIG5hdGl2ZSBwcm92aWRlciBjYWNoZSBpbnN0ZWFkIG9mIFRlcnJhZ3J1bnTigJlzIGludGVybmFsIGNhY2hlIHNlcnZlcgotIFByb3ZpZGVzIGltcHJvdmVkIGNvbmN1cnJlbmN5IHNhZmV0eSBpbiBtdWx0aS1ydW5uZXIgYW5kIENJIGVudmlyb25tZW50cwoKIyMjIyMg8J+UpyBNaWdyYXRpb24gR3VpZGUKCk5vIGFjdGlvbiBpcyByZXF1aXJlZCBpZiB5b3XigJlyZSBydW5uaW5nIE9wZW5Ub2Z1ID4gPSAxLjEwIOKAlCBwcm92aWRlciBjYWNoaW5nIHdpbGwgYmUgY29uZmlndXJlZCBhdXRvbWF0aWNhbGx5LgoKVG8gZGlzYWJsZSB0aGlzIGJlaGF2aW9yLCB1c2UgdGhlIGAtLW5vLWF1dG8tcHJvdmlkZXItY2FjaGUtZGlyYCBmbGFnOgoKYGBgYmFzaAp0ZXJyYWdydW50IHJ1biAtLWFsbCBhcHBseSAtLW5vLWF1dG8tcHJvdmlkZXItY2FjaGUtZGlyCmBgYAoKIyMjIyMg4p2k77iPIFNwZWNpYWwgVGhhbmtzCgpUaGlzIGZlYXR1cmUgbWVyZWx5IGF1dG9tYXRpY2FsbHkgYWN0aXZhdGVzIGEgZmVhdHVyZSB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIE9wZW5Ub2Z1IDEuMTAgYnkgdGhlIGhhcmQgd29yayBvZiBbQCYjODIwMztjYW03MmNhbV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2NhbTcyY2FtKSBvbiB0aGUgT3BlblRvZnUgdGVhbS4KClRoZSBPcGVuVG9mdSBwcm9qZWN0IHRha2VzIGNvbW11bml0eSBmZWVkYmFjayBzZXJpb3VzbHkgKGluY2x1ZGluZyB0aGUgbWFpbnRhaW5lcnMgb2YgdGhpcyBwcm9qZWN0KSwgYW5kIGludHJvZHVjZWQgdGhlIGFiaWxpdHkgdG8gY29uY3VycmVudGx5IGFjY2VzcyBhIHNoYXJlZCBwcm92aWRlciBjYWNoZSBkaXJlY3RvcnkgYXMgYSBmZWF0dXJlIGluIE9wZW5Ub2Z1IHRvIG1ha2UgKmFsbCB1c2Vycyogb2YgT3BlblRvZnUgYmV0dGVyIG9mZi4gTWFpbnRhaW5lcnMgb2YgVGVycmFncnVudCB3aWxsIGNvbnRpbnVlIHRvIGNvbGxhYm9yYXRlIHdpdGggdGhlIE9wZW5Ub2Z1IHRlYW0gdG8gZW5zdXJlIHRoYXQgdXNpbmcgVGVycmFncnVudCB3aXRoIE9wZW5Ub2Z1IGlzIHRoZSBlYXNpZXN0IHdheSB0byBndWFyYW50ZWUgdGhlIGJlc3QgZXhwZXJpZW5jZSBtYW5hZ2luZyBJYUMgYXQgc2NhbGUuCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotIGNob3JlOiBNYXJrZWQgYXMgY29tcGxldGVkIHJ1bm5lci1wb29sLCByZXBvcnRzIGFuZCBwcm92aWRlciBjYWNoZSBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbIyYjODIwMzs0OTAwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80OTAwKQotIGZpeDogUHJvcGVybHkgc2V0cyBkaXNjb3ZlcnkgY29udGV4dCBzbyB0aGF0IGBwbGFuIC1kZXN0cm95YCBhbmQgYGFwcGx5IC1kZXN0cm95YCB3b3JrIHJpZ2h0IGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbIyYjODIwMzs0ODg3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80ODg3KQotIGRvY3M6IEltcGxlbWVudCB2aWV3IHBsYW5zIGJ1dHRvbiBieSBbQCYjODIwMztrYXJsY2Fyc3RlbnNlbl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2thcmxjYXJzdGVuc2VuKSBpbiBbIyYjODIwMzs0ODkwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80ODkwKQotIGRvY3M6IFZpc3VhbCB1cGRhdGVzIHRvIGZvcm0gYnkgW0AmIzgyMDM7a2FybGNhcnN0ZW5zZW5dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9rYXJsY2Fyc3RlbnNlbikgaW4gWyMmIzgyMDM7NDkwMl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDkwMikKLSBkb2NzOiBGaXggZG9jcyBmbGFnIG5hbWUgYnkgW0AmIzgyMDM7cnViZW5zZl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3J1YmVuc2YpIGluIFsjJiM4MjAzOzQ5MDhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ5MDgpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IDxodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC44OC4xLi4udjAuODkuMD4KCiMjIyBbYHYwLjg4LjFgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjg4LjEpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjg4LjAuLi52MC44OC4xKQoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSBmZWF0OiBVc2UgYmV0dGVyIHBhcnNpbmcgZm9yIGAtLWF1dGgtcHJvdmlkZXItY21kYCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NDg4MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDg4MSkKLSBmaXg6IEZpeGluZyByYWNlIGNvbmRpdGlvbiBmb3IgYFRlc3RUZXJyYWdydW50RXhjbHVkZXNGaWxlYCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gWyMmIzgyMDM7NDgwOV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDgwOSkKLSBmaXg6IEZpeGluZyByZXBvcnQgZmxhZ3MgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzQ4OTldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ4OTkpCi0gZml4OiBGaXhpbmcgYC50ZmAgdnMgYC50b2Z1YCBleHRlbnNpb24gcGFyaXR5IGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbIyYjODIwMzs0Nzk0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80Nzk0KQotIGNob3JlOiBBZGQgZGF0YS50ZiB0byBpYW0gZGlyZWN0b3J5IGluIHJlZmFjdG9yaW5nIGd1aWRlIGJ5IFtAJiM4MjAzO3ZpdDEwMC10cmFkZXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS92aXQxMDAtdHJhZGVyKSBpbiBbIyYjODIwMzs0ODg4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80ODg4KQotIGNob3JlOiBSZWZhY3RvcmluZyBHaXRIdWIgY2xpZW50IGludG8gZGVkaWNhdGVkIHBhY2thZ2UgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFsjJiM4MjAzOzQ4NzldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ4NzkpCi0gYnVpbGQoZGVwcyk6IGJ1bXAgdGhlIGpzLWRlcGVuZGVuY2llcyBncm91cCBhY3Jvc3MgMSBkaXJlY3Rvcnkgd2l0aCA3IHVwZGF0ZXMgYnkgW0AmIzgyMDM7ZGVwZW5kYWJvdF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlcGVuZGFib3QpXFtib3RdIGluIFsjJiM4MjAzOzQ4NzhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ4NzgpCi0gZG9jczogVXBkYXRlIDAxLXF1aWNrLXN0YXJ0Lm1keCBieSBbQCYjODIwMzt2aXQxMDBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS92aXQxMDApIGluIFsjJiM4MjAzOzQ4ODNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ4ODMpCi0gZG9jczogQ0kgZm9yIFRlcnJhbGl0aCB0byBUZXJyYWdydW50IEd1aWRlIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbIyYjODIwMzs0ODExXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80ODExKQotIGRvY3M6IFVwZGF0ZSBPRyBpbWFnZXMgYnkgW0AmIzgyMDM7a2FybGNhcnN0ZW5zZW5dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9rYXJsY2Fyc3RlbnNlbikgaW4gWyMmIzgyMDM7NDg4OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDg4OSkKCiMjIyMgTmV3IENvbnRyaWJ1dG9ycwoKLSBbQCYjODIwMzt2aXQxMDBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS92aXQxMDApIG1hZGUgdGhlaXIgZmlyc3QgY29udHJpYnV0aW9uIGluIFsjJiM4MjAzOzQ4ODNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ4ODMpCi0gW0AmIzgyMDM7dml0MTAwLXRyYWRlcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3ZpdDEwMC10cmFkZXIpIG1hZGUgdGhlaXIgZmlyc3QgY29udHJpYnV0aW9uIGluIFsjJiM4MjAzOzQ4ODhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQ4ODgpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IDxodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC44OC4wLi4udjAuODguMT4KCjwvZGV0YWlscz4KCi0tLQoKIyMjIENvbmZpZ3VyYXRpb24KCvCfk4UgKipTY2hlZHVsZSoqOiBCcmFuY2ggY3JlYXRpb24gLSBBdCBhbnkgdGltZSAobm8gc2NoZWR1bGUgZGVmaW5lZCksIEF1dG9tZXJnZSAtIEF0IGFueSB0aW1lIChubyBzY2hlZHVsZSBkZWZpbmVkKS4KCvCfmqYgKipBdXRvbWVyZ2UqKjogRGlzYWJsZWQgYnkgY29uZmlnLiBQbGVhc2UgbWVyZ2UgdGhpcyBtYW51YWxseSBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkLgoK4pm7ICoqUmViYXNpbmcqKjogV2hlbmV2ZXIgUFIgYmVjb21lcyBjb25mbGljdGVkLCBvciB5b3UgdGljayB0aGUgcmViYXNlL3JldHJ5IGNoZWNrYm94LgoK8J+UlSAqKklnbm9yZSoqOiBDbG9zZSB0aGlzIFBSIGFuZCB5b3Ugd29uJ3QgYmUgcmVtaW5kZWQgYWJvdXQgdGhpcyB1cGRhdGUgYWdhaW4uCgotLS0KCiAtIFsgXSA8IS0tIHJlYmFzZS1jaGVjayAtLT5JZiB5b3Ugd2FudCB0byByZWJhc2UvcmV0cnkgdGhpcyBQUiwgY2hlY2sgdGhpcyBib3gKCi0tLQoKVGhpcyBQUiB3YXMgZ2VuZXJhdGVkIGJ5IFtNZW5kIFJlbm92YXRlXShodHRwczovL21lbmQuaW8vcmVub3ZhdGUvKS4gVmlldyB0aGUgW3JlcG9zaXRvcnkgam9iIGxvZ10oaHR0cHM6Ly9kZXZlbG9wZXIubWVuZC5pby9naXRodWIvb3Npc20vdGVzdGJlZCkuCjwhLS1yZW5vdmF0ZS1kZWJ1ZzpleUpqY21WaGRHVmtTVzVXWlhJaU9pSTBNUzR4TXpFdU9TSXNJblZ3WkdGMFpXUkpibFpsY2lJNklqUXhMakUxT1M0MElpd2lkR0Z5WjJWMFFuSmhibU5vSWpvaWJXRnBiaUlzSW14aFltVnNjeUk2V3lKeVpXNXZkbUYwWlNKZGZRPT0tLT4K
      patchset: cc00b91f1e59f2c97d4b224d8bd3e2a12f4e9332
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: caa0df55ed55158f32903d317317ac95db4da6ce
          trusted/project_1/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 397240f42127868e42e86e6aeb120c2cb092d117
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: 3f5938e6b0934cbeb0ac6533a4c1487d32af3210
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: caa0df55ed55158f32903d317317ac95db4da6ce
          untrusted/project_2/github.com/osism/openinfra-zuul-jobs:
            canonical_name: github.com/osism/openinfra-zuul-jobs
            checkout: master
            commit: 397240f42127868e42e86e6aeb120c2cb092d117
        playbooks:
        - path: untrusted/project_0/github.com/osism/zuul-jobs/playbooks/yamllint/run.yaml
          roles:
          - checkout: main
            checkout_description: playbook branch
            link_name: ansible/playbook_0/role_0/zuul-jobs
            link_target: untrusted/project_0/github.com/osism/zuul-jobs
            role_path: ansible/playbook_0/role_0/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_1/zuul-config
            link_target: untrusted/project_1/github.com/osism/zuul-config
            role_path: ansible/playbook_0/role_1/zuul-config/roles
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/playbook_0/role_2/openinfra-zuul-jobs
            link_target: untrusted/project_2/github.com/osism/openinfra-zuul-jobs
            role_path: ansible/playbook_0/role_2/openinfra-zuul-jobs/roles
      post_review: false
      post_timeout: null
      pre_timeout: null
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/testbed
        name: osism/testbed
        short_name: testbed
        src_dir: src/github.com/osism/testbed
      projects:
        github.com/osism/testbed:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          checkout: main
          checkout_description: zuul branch
          commit: 258737f3e970550f14d055c27098b1935f965542
          name: osism/testbed
          required: false
          short_name: testbed
          src_dir: src/github.com/osism/testbed
      ref: refs/pull/2777/head
      resources: {}
      tenant: osism
      timeout: 1800
      topic: null
      voting: true
