all:
  hosts:
    ubuntu-noble:
      ansible_connection: ssh
      ansible_host: 81.163.192.218
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 1726e4cf-a32b-42a1-bf07-c4ec63894ded
        host_id: ea231daa1e899519b2913f0036770c325ddb4f23e60dfb5fd174bdda
        interface_ip: 81.163.192.218
        label: ubuntu-noble
        private_ipv4: 10.128.0.101
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.192.218
        public_ipv6: ''
        region: null
        slot: null
  vars:
    zuul:
      _inheritance_path:
      - '<Job base branches: None source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job flake8 branches: None source: osism/zuul-jobs/.zuul.yaml@main#32>'
      - '<Job flake8 branches: None source: osism/testbed/.zuul.yaml@main#195>'
      ansible_version: '8'
      attempts: 1
      branch: main
      build: 1f325800dd814fbfa509c2576ff84342
      buildset: 0761a47b52584c919982d8aa05d39122
      change: '2615'
      change_message: "chore(deps): update dependency gruntwork-io/terragrunt to v0.76.5\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.73.15` -> `v0.76.5` |\n\n---\n\n### Release Notes\n\n<details>\n\
        <summary>gruntwork-io/terragrunt (gruntwork-io/terragrunt)</summary>\n\n###\
        \ [`v0.76.5`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.76.5)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.76.4...v0.76.5)\n\
        \n#### What's Changed\n\n-   fix(docs): Addressing some missed renames of\
        \ `terragrunt.hcl` to `root.hcl` in the docs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4058](https://redirect.github.com/gruntwork-io/terragrunt/pull/4058)\n\
        -   build(deps): Updated cloud.google.com/go/storage to 1.51.0 by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4059](https://redirect.github.com/gruntwork-io/terragrunt/pull/4059)\n\
        -   build(deps): Updated go.opentelemetry.io/otel/exporters/stdout/stdoutmetric\
        \ to 1.35.0 by [@&#8203;denis256](https://redirect.github.com/denis256) in\
        \ [https://github.com/gruntwork-io/terragrunt/pull/4059](https://redirect.github.com/gruntwork-io/terragrunt/pull/4059)\n\
        -   build(deps): Updated go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp\
        \ to 1.35.0 by [@&#8203;denis256](https://redirect.github.com/denis256) in\
        \ [https://github.com/gruntwork-io/terragrunt/pull/4059](https://redirect.github.com/gruntwork-io/terragrunt/pull/4059)\n\
        -   build(deps): Updated golang.org/x/oauth2 to 0.28.0 by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4059](https://redirect.github.com/gruntwork-io/terragrunt/pull/4059)\n\
        -   build(deps): Updated go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp\
        \ to 1.35.0 by [@&#8203;denis256](https://redirect.github.com/denis256) in\
        \ [https://github.com/gruntwork-io/terragrunt/pull/4059](https://redirect.github.com/gruntwork-io/terragrunt/pull/4059)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.76.4...v0.76.5\n\
        \n### [`v0.76.4`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.76.4)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.76.3...v0.76.4)\n\
        \n#### What's Changed\n\n-   feat: Introduced `-a` alias for the `-all` flag\
        \ [#&#8203;4048](https://redirect.github.com/gruntwork-io/terragrunt/pull/4048)\
        \ by [@&#8203;levkohimins](https://redirect.github.com/levkohimins)\n-   feat:\
        \ Implemented detection of nested stacks [#&#8203;4052](https://redirect.github.com/gruntwork-io/terragrunt/pull/4052)\
        \ by [@&#8203;denis256](https://redirect.github.com/denis256)\n-   fix: Refactored\
        \ list package structure [#&#8203;4050](https://redirect.github.com/gruntwork-io/terragrunt/pull/4050)\
        \ by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\n-   fix: Updated\
        \ documentation for list usage [#&#8203;4051](https://redirect.github.com/gruntwork-io/terragrunt/pull/4051)\
        \ by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\n-   fix: Corrected\
        \ `.stack` references in generated documentation [#&#8203;4053](https://redirect.github.com/gruntwork-io/terragrunt/pull/4053)\
        \ by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\n\n**Full Changelog**:\
        \ https://github.com/gruntwork-io/terragrunt/compare/v0.76.3...v0.76.4\n\n\
        ### [`v0.76.3`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.76.3)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.76.2...v0.76.3)\n\
        \n#### \U0001F6E0\uFE0F Breaking Changes\n\n##### `find --sort=dag` changed\
        \ to `find --dag`\n\nThe experimental [`find`](https://terragrunt.gruntwork.io/docs/reference/cli-options/#find)\
        \ command no longer has a `--sort` flag. Instead the ability to sort configurations\
        \ according to their position in the [DAG](https://terragrunt.gruntwork.io/docs/getting-started/terminology/#directed-acyclic-graph-dag)\
        \ has been replaced with the dedicated `--dag` flag, which puts the command\
        \ in \"DAG Mode\". These changes have been done to allow for closer parity\
        \ in the behavior of `find` and `list`.\n\n```bash\n\n### Before\nterragrunt\
        \ find --sort=dag\n\n### After\nterragrunt find --dag\n```\n\n#### \u2728\
        \ New Features\n\n##### Introduction of the `list` command\n\nAs part of the\
        \ [CLI Redesign](https://terragrunt.gruntwork.io/docs/reference/experiments/#cli-redesign)\
        \ experiment, the [`list`](https://terragrunt.gruntwork.io/docs/reference/cli-options/#list)\
        \ command has been introduced. As with other new features, usage requires\
        \ enabling the CLI Redesign experiment.\n\nThe list command helps you discover\
        \ and display Terragrunt configurations in your codebase. It provides various\
        \ output formats and options to help you understand the structure and dependencies\
        \ of your Terragrunt configurations.\n\nThe list command is very similar to\
        \ the [find command](https://terragrunt.gruntwork.io/docs/reference/cli-options/#find).\
        \ It uses the same backend logic for configuration discovery. It also supports\
        \ very similar flags and configuration options.\n\nGenerally, the list command\
        \ is optimized for displaying configurations in a format that is easy for\
        \ a human to read and understand, so there are more configuration options,\
        \ and the output is more verbose. Output from the list command can vary significantly\
        \ depending on the flags used, and the output structure is more variable than\
        \ that of the find command.\n\nUse the list command when you want to visualize\
        \ your Terragrunt configurations in a human-readable format. Use the find\
        \ command when you want to programmatically search for configurations in your\
        \ codebase.\n\n##### Usage\n\nBy default, the `list` command will display\
        \ all discovered configurations with some spacing to display as many as it\
        \ can on each line.\n\n![list](https://redirect.github.com/user-attachments/assets/d4473e7e-85bd-4629-aba1-0b9601c24d0c)\n\
        \nWhen the size of the output exceeds the width of the terminal, entries will\
        \ be broken into multiple lines.\n\n![list-narrow](https://redirect.github.com/user-attachments/assets/0273d315-bb35-466c-a308-aeb2c76e3696)\n\
        \nUsers can additionally request that the `--long` format is used, which breaks\
        \ the results over individual lines for each discovered configuration.\n\n\
        ![list-long](https://redirect.github.com/user-attachments/assets/746a6a22-19f2-4847-a048-f3fc335b5417)\n\
        \nLike with the `find` command, users can optionally request that dependencies\
        \ be displayed.\n\n![list-long-dependencies](https://redirect.github.com/user-attachments/assets/e69b042a-7d7b-4501-bfe4-d976654f87a6)\n\
        \nThe final format that the `list` command supports is the `tree` format:\n\
        \n![list-tree](https://redirect.github.com/user-attachments/assets/deca7432-08ff-41a9-bf98-1533769966d1)\n\
        \nLike with the `find` command, the `list` command supports the `--dag` flag\
        \ which sorts and groups results according to their relative positions in\
        \ the Directed Acyclic Graph (DAG).\n\n![list-tree-dag](https://redirect.github.com/user-attachments/assets/2fa1e314-5de4-4381-bab3-8a1ee01442b7)\n\
        \nFor more information read the documentation in [`list`](https://terragrunt.gruntwork.io/docs/reference/cli-options/#list).\n\
        \n#### What's Changed\n\n-   feat: Adding `list` command by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4034](https://redirect.github.com/gruntwork-io/terragrunt/pull/4034)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.76.2...v0.76.3\n\
        \n### [`v0.76.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.76.2)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.76.1...v0.76.2)\n\
        \n#### \u2728 New Features\n\nAdded `--no-stack-generate` support in `stack\
        \ run` and `stack output`, allowing users to disable automatic stack regeneration\
        \ before executing commands. This provides greater control over stack operations\
        \ by allowing commands to use the existing `.terragrunt-stack` directory,\
        \ improving efficiency and avoiding unnecessary updates.\n\n#### What's Changed\n\
        \n-   feat: Added `--no-stack-generate` cli flag to skip stack generation\
        \ by [@&#8203;denis256](https://redirect.github.com/denis256) in [https://github.com/gruntwork-io/terragrunt/pull/4039](https://redirect.github.com/gruntwork-io/terragrunt/pull/4039)\n\
        -   chroe: Stack tests improvements by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4033](https://redirect.github.com/gruntwork-io/terragrunt/pull/4033)\n\
        -   chrore: Adding `.cursor` to `.gitignore` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4040](https://redirect.github.com/gruntwork-io/terragrunt/pull/4040)\n\
        -   docs: Adding docs for `--all` and `--graph` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4036](https://redirect.github.com/gruntwork-io/terragrunt/pull/4036)\n\
        -   docs: Move `info` to a better location by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4037](https://redirect.github.com/gruntwork-io/terragrunt/pull/4037)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.76.1...v0.76.2\n\
        \n### [`v0.76.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.76.1)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.76.0...v0.76.1)\n\
        \n#### \u2728 New Features\n\nIntroduced `no_dot_terragrunt_stack` support\
        \ in `stack` and `unit`, allowing users to opt out of generating `.terragrunt-stack`\
        \ directories. This enables seamless adoption of `terragrunt.stack.hcl` without\
        \ requiring state migration for existing infrastructure.\n\nDemo:\n![no_dot_terragrunt_stack_example_release_example](https://redirect.github.com/user-attachments/assets/546d281b-3dbb-4cb8-afd3-9b98b75b4f02)\n\
        \nStacks RFC: [https://github.com/gruntwork-io/terragrunt/issues/3313](https://redirect.github.com/gruntwork-io/terragrunt/issues/3313)\n\
        \n#### What's Changed\n\n-   feat: added support for support for `no_dot_terragrunt_stack`\
        \ in `stack` and `unit` blocks by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4019](https://redirect.github.com/gruntwork-io/terragrunt/pull/4019)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.76.0...v0.76.1\n\
        \n### [`v0.76.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.76.0)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.10...v0.76.0)\n\
        \n#### \u2728 New Features / \U0001F6E0\uFE0F Breaking Changes\n\n##### Catalog/Scaffold\
        \ no longer requires `--root-file-name root.hcl`\n\n\u2728 The `catalog` and\
        \ `scaffold` commands will now attempt to discover a parent `root.hcl` file\
        \ by default and use it as the default root Terragrunt configuration when\
        \ present to help users adopt the changes in [migrating-from-root-terragrunt-hcl](https://terragrunt.gruntwork.io/docs/migrate/migrating-from-root-terragrunt-hcl/).\n\
        \nUsers that have switched over to use `root.hcl` as the root of their Terragrunt\
        \ configurations instead of `terragrunt.hcl` will no longer need to explicitly\
        \ pass `--root-file-name root.hcl` or use the [root-terragrunt-hcl](https://terragrunt.gruntwork.io/docs/reference/strict-mode/#root-terragrunt-hcl)\
        \ strict control to automatically discover the root of their Terragrunt configurations\
        \ when using `catalog` or `scaffold`.\n\n\U0001F6E0\uFE0F Note that this is\
        \ technically a breaking change to the way that `catalog` and `scaffold` work.\
        \ With this change, users that have *both* a `root.hcl` file and a `terragrunt.hcl`\
        \ file at the root of their repositories will have the `root.hcl` file used\
        \ instead of the `terragrunt.hcl` file for the `catalog` and `scaffold` commands.\n\
        \nIf you are not yet ready to rename the `terragrunt.hcl` file at the root\
        \ of your repository, use the `--root-file-name` flag to explicitly provide\
        \ `terragrunt.hcl` as the name of the Terragrunt configuration at the root\
        \ of your Terragrunt project.\n\nThis change was made as most users are very\
        \ unlikely to have *both* `root.hcl` (the recommended root of Terragrunt configurations)\
        \ and `terragrunt.hcl` (the legacy root of Terragrunt configurations in the\
        \ same Terragrunt project) at the root of their Terragrunt project. This configuration\
        \ is entirely CLI based, making it relatively easy to address for users (as\
        \ opposed to HCL configurations, which might take more time for teams to address).\n\
        \nUsers looking to move from a root `terragrunt.hcl` file to a `root.hcl`\
        \ file will still need to read through the migration guide to adjust all usages\
        \ of `find_in_parent_folders` when making the switch.\n\n#### What's Changed\n\
        \n-   fix: Lookup root.hcl if present by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4022](https://redirect.github.com/gruntwork-io/terragrunt/pull/4022)\n\
        -   fix: Improving logic for scaffold default root discovery by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4029](https://redirect.github.com/gruntwork-io/terragrunt/pull/4029)\n\
        -   fix: Fixing configuration parsing order link by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4021](https://redirect.github.com/gruntwork-io/terragrunt/pull/4021)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.10...v0.76.0\n\
        \n### [`v0.75.10`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.10)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.9...v0.75.10)\n\
        \n#### What's Changed\n\n-   fix: addressing `gopls` findings by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4018](https://redirect.github.com/gruntwork-io/terragrunt/pull/4018)\n\
        -   build(deps): bump golang.org/x/net from 0.35.0 to 0.36.0 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4013](https://redirect.github.com/gruntwork-io/terragrunt/pull/4013)\n\
        -   build(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc\
        \ to 1.35.0 update by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4020](https://redirect.github.com/gruntwork-io/terragrunt/pull/4020)\n\
        -   build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 to 1.78.1 update\
        \ by [@&#8203;denis256](https://redirect.github.com/denis256) in [https://github.com/gruntwork-io/terragrunt/pull/4020](https://redirect.github.com/gruntwork-io/terragrunt/pull/4020)\n\
        -   build(deps): bump golang.org/x/mod to 0.24.0 update by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4020](https://redirect.github.com/gruntwork-io/terragrunt/pull/4020)\n\
        -   build(deps): bump go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc\
        \ to 1.35.0 update by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4020](https://redirect.github.com/gruntwork-io/terragrunt/pull/4020)\n\
        -   build(deps): bump go.opentelemetry.io/otel to 1.35.0 update by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4020](https://redirect.github.com/gruntwork-io/terragrunt/pull/4020)\n\
        -   build(deps): bump github.com/gruntwork-io/terragrunt-engine-go to v0.0.11\
        \ update by [@&#8203;denis256](https://redirect.github.com/denis256) in [https://github.com/gruntwork-io/terragrunt/pull/4020](https://redirect.github.com/gruntwork-io/terragrunt/pull/4020)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.9...v0.75.10\n\
        \n### [`v0.75.9`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.9)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.8...v0.75.9)\n\
        \n#### \U0001F41B Bug fixes\n\n##### Using absolute paths for `mark_as_read`\n\
        \nThe internal store for the values `mark_as_read` was tracking now use absolute\
        \ paths instead of \"canonical paths\". The result of this is that even if\
        \ you are using tooling like `run_cmd` to dynamically discover files to mark\
        \ as read, you should still expect `--queue-include-units-reading` to work\
        \ correctly.\n\n#### What's Changed\n\n-   fix: Use abs path for `mark_as_read`\
        \ by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [https://github.com/gruntwork-io/terragrunt/pull/4015](https://redirect.github.com/gruntwork-io/terragrunt/pull/4015)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.8...v0.75.9\n\
        \n### [`v0.75.8`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.8)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.7...v0.75.8)\n\
        \n#### What's Changed\n\n-   feat: added support for`  --source-map ` when\
        \ downloading units and stacks by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4011](https://redirect.github.com/gruntwork-io/terragrunt/pull/4011)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.7...v0.75.8\n\
        \n### [`v0.75.7`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.7)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.6...v0.75.7)\n\
        \n#### \u2728 New Features\n\n##### `find` supports `dag` sorting\n\nThe `find`\
        \ command now supports the ability to sort results by their relative positions\
        \ in the Directed Acyclic Graph (DAG).\n\nTo use the `find` command, you must\
        \ enable the [`cli-redesign` experiment](https://terragrunt.gruntwork.io/docs/reference/experiments/#cli-redesign).\n\
        \n![tg-find-no-dag](https://redirect.github.com/user-attachments/assets/36366dde-0581-47a9-a4f7-94b06f9df0bb)\n\
        \n![tg-find-dag](https://redirect.github.com/user-attachments/assets/01d0eeb1-75be-43e2-8657-77ff4cf46c18)\n\
        \nThe `find` command now also supports discovering dependencies of units with\
        \ the new `--dependencies` flag.\n\n![tg-find-dag-deps](https://redirect.github.com/user-attachments/assets/1ea9c5a8-3d03-4075-b6c8-8fa9ce68274c)\n\
        \nIn addition, external dependencies (dependencies outside the working directory\
        \ where `find` was run), can be discovered using the `--external` flag.\n\n\
        ![tg-find-dag-ext](https://redirect.github.com/user-attachments/assets/92c90bde-62bc-4145-a04e-e27ba6884f9a)\n\
        \nMore information can be found [in the `find` docs](https://terragrunt.gruntwork.io/docs/reference/cli-options/#find-sorting).\n\
        \n##### The `stack run` command now supports all `run` flags\n\nThe `stack\
        \ run` command now supports all the same flags `run` supports, including `--queue-include-dir`.\n\
        \nTo use `stack` commands, you must enable the [`stacks`](https://terragrunt.gruntwork.io/docs/reference/experiments/#stacks)\
        \ experiment.\n\nAs an example of what's supported now:\n\n```bash\nterragrunt\
        \ --experiment stacks stack run apply --queue-strict-include --queue-include-dir=./.terragrunt-stack/app1\
        \ --non-interactive\n```\n\nMore information can be found [in the `stack run`\
        \ docs](https://terragrunt.gruntwork.io/docs/reference/cli-options/#stack-run).\n\
        \n#### What's Changed\n\n-   feat: Support all `run` cli flags in the Stack\
        \ command by [@&#8203;denis256](https://redirect.github.com/denis256) in [https://github.com/gruntwork-io/terragrunt/pull/4005](https://redirect.github.com/gruntwork-io/terragrunt/pull/4005)\n\
        -   feat: Adding DAG support to find by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4001](https://redirect.github.com/gruntwork-io/terragrunt/pull/4001)\n\
        -   fix: Upgrading `golangci-lint` by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3987](https://redirect.github.com/gruntwork-io/terragrunt/pull/3987)\n\
        -   fix: Reducing noise for skipped dependency inputs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4007](https://redirect.github.com/gruntwork-io/terragrunt/pull/4007)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.6...v0.75.7\n\
        \n### [`v0.75.6`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.6)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.5...v0.75.6)\n\
        \n#### \u2728 New Features\n\n##### IaC Engine Dependency Support\n\nIaC Engines\
        \ are now used during dependency evaluation when enabled. This results in\
        \ more coverage by IaC engines when enabled, reducing the reliance on the\
        \ presence of OpenTofu/Terraform on host machines when using IaC Engines.\n\
        \nThanks to [@&#8203;partcyborg](https://redirect.github.com/partcyborg) for\
        \ submitting this change.\n\n#### \U0001F697 Performance Improvements\n\n\
        Generation of `terragrunt.stack.hcl` files are now done in parallel. This\
        \ can result in significant speedups for users with multiple units or nested\
        \ stacks in `terragrunt.stack.hcl` files.\n\n#### What's Changed\n\n-   feat:\
        \ add engine support to dependencies by [@&#8203;partcyborg](https://redirect.github.com/partcyborg)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3974](https://redirect.github.com/gruntwork-io/terragrunt/pull/3974)\n\
        -   feat: engine config in dependencies improvements by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4002](https://redirect.github.com/gruntwork-io/terragrunt/pull/4002)\n\
        -   feat: added support for parallel stacks generation by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3999](https://redirect.github.com/gruntwork-io/terragrunt/pull/3999)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.5...v0.75.6\n\
        \n### [`v0.75.5`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.5)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.4...v0.75.5)\n\
        \n#### \u2728 New Features\n\nThis release introduces experimental support\
        \ for the Terragrunt Content Addressable Store (CAS).\n\nTo enable this feature,\
        \ you must use the [cas](https://terragrunt.gruntwork.io/docs/reference/experiments/#cas)\
        \ experiment.\n\nWhen using the CAS, the `catalog` command will store its\
        \ contents in a CAS to deduplicate repository contents, then construct the\
        \ resultant repo from the CAS.\n\nYou can use Git URLs for the `catalog` command\
        \ normally, and when the `cas` experiment is enabled, Terragrunt will leverage\
        \ the CAS to save you clone time and disk space:\n\n```hcl\ncatalog {\n  urls\
        \ = [\n    \"git@github.com:acme/modules.git\"\n  ]\n}\n```\n\nThere are more\
        \ planned integration points for the CAS, but for now only the `catalog` command\
        \ is supported.\n\nYou can learn more about the CAS in the [feature documentation](https://terragrunt.gruntwork.io/docs/features/cas/).\n\
        \n#### What's Changed\n\n-   feat: Adding cas support to catalog by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3929](https://redirect.github.com/gruntwork-io/terragrunt/pull/3929)\n\
        -   fix: Engine tests improvements by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3995](https://redirect.github.com/gruntwork-io/terragrunt/pull/3995)\n\
        -   fix: Adding integration testing to the `find` command. by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3997](https://redirect.github.com/gruntwork-io/terragrunt/pull/3997)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.4...v0.75.5\n\
        \n### [`v0.75.4`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.4)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.3...v0.75.4)\n\
        \n#### \u2728 New Features\n\n##### The `find` command\n\nThis release introduces\
        \ experimental support for the `find` command.\n\nTo use it, you will need\
        \ to enable the [`cli-redesign`](https://terragrunt.gruntwork.io/docs/reference/experiments/#cli-redesign---criteria-for-stabilization)\
        \ experiment.\n\nThe `find` command allows for easy discovery of [unit](https://terragrunt.gruntwork.io/docs/getting-started/terminology/#unit)\
        \ and [stack](https://terragrunt.gruntwork.io/docs/getting-started/terminology/#stack)\
        \ configurations in a Terragrunt codebase.\n\nBy default, results are color\
        \ coded to make it easy to discern different configuration types:\n\n![tg-find](https://redirect.github.com/user-attachments/assets/bb43596b-e9a0-4d6e-b504-ece8c1f6c96e)\n\
        \nWhen piped into another command, Terragrunt will automatically remove those\
        \ colors so that it won't interfere with any post-processing:\n\n![tg-find-piped](https://redirect.github.com/user-attachments/assets/50d20fb7-58a8-43c7-8911-218434eb3888)\n\
        \nResults can also be emitted in JSON format for more advanced use-cases:\n\
        \n![tg-find-json](https://redirect.github.com/user-attachments/assets/955cbfe4-4147-449b-9ac4-7779a68b1aed)\n\
        \nThis is the initial, minimal implementation of the command, with more functionality\
        \ to come in the near future.\n\nYou can learn more about the command [here](https://terragrunt.gruntwork.io/docs/reference/cli-options/#find).\n\
        \n#### What's Changed\n\n-   feat: Adding `find` command by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3981](https://redirect.github.com/gruntwork-io/terragrunt/pull/3981)\n\
        -   fix: Adding docs from role assumption updates in Jekyll docs to Starlight\
        \ docs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [https://github.com/gruntwork-io/terragrunt/pull/3985](https://redirect.github.com/gruntwork-io/terragrunt/pull/3985)\n\
        -   fix: Fixed failing CircleCI jobs by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3988](https://redirect.github.com/gruntwork-io/terragrunt/pull/3988)\n\
        -   fix: Remove usage of template provider in text fixtures by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3986](https://redirect.github.com/gruntwork-io/terragrunt/pull/3986)\n\
        -   build(deps): bump github.com/gruntwork-io/terratest from 0.47.2 to 0.48.2\
        \ by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/gruntwork-io/terragrunt/pull/3858](https://redirect.github.com/gruntwork-io/terragrunt/pull/3858)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.3...v0.75.4\n\
        \n### [`v0.75.3`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.3)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.2...v0.75.3)\n\
        \n#### \u2728 New Features\n\nThis release introduces support for all the\
        \ remaining `assume_role` arguments used by OpenTofu/Terraform backends.\n\
        \nThank you to [@&#8203;erpel](https://redirect.github.com/erpel) for contributing\
        \ this!\n\n#### What's Changed\n\n-   feat: Add support for all assume_role\
        \ block arguments for s3 backend by [@&#8203;erpel](https://redirect.github.com/erpel)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3975](https://redirect.github.com/gruntwork-io/terragrunt/pull/3975)\n\
        -   fix: Adjusting contribution docs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3979](https://redirect.github.com/gruntwork-io/terragrunt/pull/3979)\n\
        -   chore: Bumping Dependencies as requested by Dependabot by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3984](https://redirect.github.com/gruntwork-io/terragrunt/pull/3984)\n\
        -   docs: update contributing.md with dev containers entry by [@&#8203;j2udev](https://redirect.github.com/j2udev)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3977](https://redirect.github.com/gruntwork-io/terragrunt/pull/3977)\n\
        \n#### New Contributors\n\n-   [@&#8203;erpel](https://redirect.github.com/erpel)\
        \ made their first contribution in [https://github.com/gruntwork-io/terragrunt/pull/3975](https://redirect.github.com/gruntwork-io/terragrunt/pull/3975)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.2...v0.75.3\n\
        \n### [`v0.75.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.2)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.1...v0.75.2)\n\
        \n#### What's Changed\n\n-   Stacks: added support for stack values by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3961](https://redirect.github.com/gruntwork-io/terragrunt/pull/3961)\n\
        \nExample HCL configuration:\n\n```hcl\nstack \"dev\" {\n  source = \"stacks/dev\"\
        \n  path   = \"dev\"\n\n### new values block\n  values = {\n    project =\
        \ \"dev-project\"\n    env     = \"dev\"\n  }\n}\n```\n\nRFC: [https://github.com/gruntwork-io/terragrunt/issues/3313](https://redirect.github.com/gruntwork-io/terragrunt/issues/3313)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.1...v0.75.2\n\
        \n### [`v0.75.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.1)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.75.0...v0.75.1)\n\
        \n#### What's Changed\n\n-   feat: Strict control for old deprecated env vars\
        \ by [@&#8203;levkohimins](https://redirect.github.com/levkohimins) in [https://github.com/gruntwork-io/terragrunt/pull/3964](https://redirect.github.com/gruntwork-io/terragrunt/pull/3964)\n\
        -   feat: Adding `.coderabbit.yaml` file by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3969](https://redirect.github.com/gruntwork-io/terragrunt/pull/3969)\n\
        -   fix: Updated failing engine tests by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3960](https://redirect.github.com/gruntwork-io/terragrunt/pull/3960)\n\
        -   fix: Replacing usage of `run-all` with `run --all` in starlight docs by\
        \ [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [https://github.com/gruntwork-io/terragrunt/pull/3950](https://redirect.github.com/gruntwork-io/terragrunt/pull/3950)\n\
        -   fix: Update mark_as_read example and docs by [@&#8203;odgrim](https://redirect.github.com/odgrim)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3971](https://redirect.github.com/gruntwork-io/terragrunt/pull/3971)\n\
        -   fix: Adding missing cautionary asides by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3970](https://redirect.github.com/gruntwork-io/terragrunt/pull/3970)\n\
        -   chore: Tofu engine update to v0.0.16 in tests by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3951](https://redirect.github.com/gruntwork-io/terragrunt/pull/3951)\n\
        -   build(deps-dev): bump uri from 0.13.0 to 0.13.2 in /docs by [@&#8203;dependabot](https://redirect.github.com/dependabot)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3963](https://redirect.github.com/gruntwork-io/terragrunt/pull/3963)\n\
        \n#### New Contributors\n\n-   [@&#8203;odgrim](https://redirect.github.com/odgrim)\
        \ made their first contribution in [https://github.com/gruntwork-io/terragrunt/pull/3971](https://redirect.github.com/gruntwork-io/terragrunt/pull/3971)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.75.0...v0.75.1\n\
        \n### [`v0.75.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.75.0)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.74.0...v0.75.0)\n\
        \n**Terraform 1.11 support**: We are now testing Terragrunt against Terraform\
        \ 1.11 and is confirmed to be working.\n\nNOTE: Although this release is marked\
        \ as backward incompatible, it is functionally compatible as nothing has been\
        \ changed in Terragrunt internals. The minor version release is useful to\
        \ mark the change in Terraform version that is being tested.\n\n#### What's\
        \ Changed\n\n-   feat: Added support for Terraform 1.11 by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3958](https://redirect.github.com/gruntwork-io/terragrunt/pull/3958)\n\
        -   fix: corrected command `run -- graph` by [@&#8203;levkohimins](https://redirect.github.com/levkohimins)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3959](https://redirect.github.com/gruntwork-io/terragrunt/pull/3959)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.74.0...v0.75.0\n\
        \n### [`v0.74.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.74.0)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.73.16...v0.74.0)\n\
        \n#### Description\n\n**Terraform 1.10 support**: We are now testing Terragrunt\
        \ against Terraform 1.10 and is confirmed to be working.\n\nNOTE: Although\
        \ this release is marked as backward incompatible, it is functionally compatible\
        \ as nothing has been changed in Terragrunt internals. The minor version release\
        \ is useful to mark the change in Terraform version that is being tested.\n\
        \n#### What's Changed\n\n-   feat: Implementation of `--all` `--graph` flags\
        \ by [@&#8203;levkohimins](https://redirect.github.com/levkohimins) in [https://github.com/gruntwork-io/terragrunt/pull/3944](https://redirect.github.com/gruntwork-io/terragrunt/pull/3944)\n\
        -   feat: Added support for Terraform 1.10 by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3605](https://redirect.github.com/gruntwork-io/terragrunt/pull/3605)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.73.16...v0.74.0\n\
        \n### [`v0.73.16`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.73.16)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.73.15...v0.73.16)\n\
        \n#### \u2728 New Features\n\nAdded support for nested stacks, enabling more\
        \ flexible and modular stack configurations.\n\nDemo:\n\n![nested-stacks](https://redirect.github.com/user-attachments/assets/12b5c2e1-f58e-4488-873f-ee8b94e72afc)\n\
        \nTo try it out, make sure you enable the [stacks experiment](https://terragrunt.gruntwork.io/docs/reference/experiments/#stacks).\n\
        \nRFC: [https://github.com/gruntwork-io/terragrunt/issues/3313](https://redirect.github.com/gruntwork-io/terragrunt/issues/3313)\n\
        \n#### What's Changed\n\n-   feat: added support for nested stacks [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3900](https://redirect.github.com/gruntwork-io/terragrunt/pull/3900)\n\
        -   docs: Support new pre-release process by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/3941](https://redirect.github.com/gruntwork-io/terragrunt/pull/3941)\n\
        -   build(deps): bump github.com/go-jose/go-jose/v4 from 4.0.4 to 4.0.5 by\
        \ [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/gruntwork-io/terragrunt/pull/3930](https://redirect.github.com/gruntwork-io/terragrunt/pull/3930)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.73.15...v0.73.16\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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuMiIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
      change_url: https://github.com/osism/testbed/pull/2615
      child_jobs: []
      commit_id: 3481ae05f11cc6d78a19b587400010e8827039c4
      event_id: 212b3e90-0683-11f0-88f4-a9da1fe16820
      executor:
        hostname: 7d211f194f6a
        inventory_file: /var/lib/zuul/builds/1f325800dd814fbfa509c2576ff84342/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/1f325800dd814fbfa509c2576ff84342/work/logs
        result_data_file: /var/lib/zuul/builds/1f325800dd814fbfa509c2576ff84342/work/results.json
        src_root: /var/lib/zuul/builds/1f325800dd814fbfa509c2576ff84342/work/src
        work_root: /var/lib/zuul/builds/1f325800dd814fbfa509c2576ff84342/work
      items:
      - branch: main
        change: '2615'
        change_url: https://github.com/osism/testbed/pull/2615
        patchset: 3481ae05f11cc6d78a19b587400010e8827039c4
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          name: osism/testbed
          short_name: testbed
          src_dir: src/github.com/osism/testbed
      job: flake8
      jobtags: []
      max_attempts: 3
      message: Y2hvcmUoZGVwcyk6IHVwZGF0ZSBkZXBlbmRlbmN5IGdydW50d29yay1pby90ZXJyYWdydW50IHRvIHYwLjc2LjUKClRoaXMgUFIgY29udGFpbnMgdGhlIGZvbGxvd2luZyB1cGRhdGVzOgoKfCBQYWNrYWdlIHwgVXBkYXRlIHwgQ2hhbmdlIHwKfC0tLXwtLS18LS0tfAp8IFtncnVudHdvcmstaW8vdGVycmFncnVudF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50KSB8IG1pbm9yIHwgYHYwLjczLjE1YCAtPiBgdjAuNzYuNWAgfAoKLS0tCgojIyMgUmVsZWFzZSBOb3RlcwoKPGRldGFpbHM+CjxzdW1tYXJ5PmdydW50d29yay1pby90ZXJyYWdydW50IChncnVudHdvcmstaW8vdGVycmFncnVudCk8L3N1bW1hcnk+CgojIyMgW2B2MC43Ni41YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43Ni41KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ni40Li4udjAuNzYuNSkKCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gICBmaXgoZG9jcyk6IEFkZHJlc3Npbmcgc29tZSBtaXNzZWQgcmVuYW1lcyBvZiBgdGVycmFncnVudC5oY2xgIHRvIGByb290LmhjbGAgaW4gdGhlIGRvY3MgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDU4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDU4KQotICAgYnVpbGQoZGVwcyk6IFVwZGF0ZWQgY2xvdWQuZ29vZ2xlLmNvbS9nby9zdG9yYWdlIHRvIDEuNTEuMCBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA1OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA1OSkKLSAgIGJ1aWxkKGRlcHMpOiBVcGRhdGVkIGdvLm9wZW50ZWxlbWV0cnkuaW8vb3RlbC9leHBvcnRlcnMvc3Rkb3V0L3N0ZG91dG1ldHJpYyB0byAxLjM1LjAgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwNTldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwNTkpCi0gICBidWlsZChkZXBzKTogVXBkYXRlZCBnby5vcGVudGVsZW1ldHJ5LmlvL290ZWwvZXhwb3J0ZXJzL290bHAvb3RscHRyYWNlL290bHB0cmFjZWh0dHAgdG8gMS4zNS4wIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDU5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDU5KQotICAgYnVpbGQoZGVwcyk6IFVwZGF0ZWQgZ29sYW5nLm9yZy94L29hdXRoMiB0byAwLjI4LjAgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwNTldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwNTkpCi0gICBidWlsZChkZXBzKTogVXBkYXRlZCBnby5vcGVudGVsZW1ldHJ5LmlvL290ZWwvZXhwb3J0ZXJzL290bHAvb3RscG1ldHJpYy9vdGxwbWV0cmljaHR0cCB0byAxLjM1LjAgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwNTldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwNTkpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc2LjQuLi52MC43Ni41CgojIyMgW2B2MC43Ni40YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43Ni40KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ni4zLi4udjAuNzYuNCkKCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gICBmZWF0OiBJbnRyb2R1Y2VkIGAtYWAgYWxpYXMgZm9yIHRoZSBgLWFsbGAgZmxhZyBbIyYjODIwMzs0MDQ4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDQ4KSBieSBbQCYjODIwMztsZXZrb2hpbWluc10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2xldmtvaGltaW5zKQotICAgZmVhdDogSW1wbGVtZW50ZWQgZGV0ZWN0aW9uIG9mIG5lc3RlZCBzdGFja3MgWyMmIzgyMDM7NDA1Ml0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA1MikgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikKLSAgIGZpeDogUmVmYWN0b3JlZCBsaXN0IHBhY2thZ2Ugc3RydWN0dXJlIFsjJiM4MjAzOzQwNTBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwNTApIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKQotICAgZml4OiBVcGRhdGVkIGRvY3VtZW50YXRpb24gZm9yIGxpc3QgdXNhZ2UgWyMmIzgyMDM7NDA1MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA1MSkgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpCi0gICBmaXg6IENvcnJlY3RlZCBgLnN0YWNrYCByZWZlcmVuY2VzIGluIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uIFsjJiM4MjAzOzQwNTNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwNTMpIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ni4zLi4udjAuNzYuNAoKIyMjIFtgdjAuNzYuM2BdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuNzYuMykKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzYuMi4uLnYwLjc2LjMpCgojIyMjIPCfm6DvuI8gQnJlYWtpbmcgQ2hhbmdlcwoKIyMjIyMgYGZpbmQgLS1zb3J0PWRhZ2AgY2hhbmdlZCB0byBgZmluZCAtLWRhZ2AKClRoZSBleHBlcmltZW50YWwgW2BmaW5kYF0oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL3JlZmVyZW5jZS9jbGktb3B0aW9ucy8jZmluZCkgY29tbWFuZCBubyBsb25nZXIgaGFzIGEgYC0tc29ydGAgZmxhZy4gSW5zdGVhZCB0aGUgYWJpbGl0eSB0byBzb3J0IGNvbmZpZ3VyYXRpb25zIGFjY29yZGluZyB0byB0aGVpciBwb3NpdGlvbiBpbiB0aGUgW0RBR10oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL2dldHRpbmctc3RhcnRlZC90ZXJtaW5vbG9neS8jZGlyZWN0ZWQtYWN5Y2xpYy1ncmFwaC1kYWcpIGhhcyBiZWVuIHJlcGxhY2VkIHdpdGggdGhlIGRlZGljYXRlZCBgLS1kYWdgIGZsYWcsIHdoaWNoIHB1dHMgdGhlIGNvbW1hbmQgaW4gIkRBRyBNb2RlIi4gVGhlc2UgY2hhbmdlcyBoYXZlIGJlZW4gZG9uZSB0byBhbGxvdyBmb3IgY2xvc2VyIHBhcml0eSBpbiB0aGUgYmVoYXZpb3Igb2YgYGZpbmRgIGFuZCBgbGlzdGAuCgpgYGBiYXNoCgojIyMgQmVmb3JlCnRlcnJhZ3J1bnQgZmluZCAtLXNvcnQ9ZGFnCgojIyMgQWZ0ZXIKdGVycmFncnVudCBmaW5kIC0tZGFnCmBgYAoKIyMjIyDinKggTmV3IEZlYXR1cmVzCgojIyMjIyBJbnRyb2R1Y3Rpb24gb2YgdGhlIGBsaXN0YCBjb21tYW5kCgpBcyBwYXJ0IG9mIHRoZSBbQ0xJIFJlZGVzaWduXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL2V4cGVyaW1lbnRzLyNjbGktcmVkZXNpZ24pIGV4cGVyaW1lbnQsIHRoZSBbYGxpc3RgXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL2NsaS1vcHRpb25zLyNsaXN0KSBjb21tYW5kIGhhcyBiZWVuIGludHJvZHVjZWQuIEFzIHdpdGggb3RoZXIgbmV3IGZlYXR1cmVzLCB1c2FnZSByZXF1aXJlcyBlbmFibGluZyB0aGUgQ0xJIFJlZGVzaWduIGV4cGVyaW1lbnQuCgpUaGUgbGlzdCBjb21tYW5kIGhlbHBzIHlvdSBkaXNjb3ZlciBhbmQgZGlzcGxheSBUZXJyYWdydW50IGNvbmZpZ3VyYXRpb25zIGluIHlvdXIgY29kZWJhc2UuIEl0IHByb3ZpZGVzIHZhcmlvdXMgb3V0cHV0IGZvcm1hdHMgYW5kIG9wdGlvbnMgdG8gaGVscCB5b3UgdW5kZXJzdGFuZCB0aGUgc3RydWN0dXJlIGFuZCBkZXBlbmRlbmNpZXMgb2YgeW91ciBUZXJyYWdydW50IGNvbmZpZ3VyYXRpb25zLgoKVGhlIGxpc3QgY29tbWFuZCBpcyB2ZXJ5IHNpbWlsYXIgdG8gdGhlIFtmaW5kIGNvbW1hbmRdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2UvY2xpLW9wdGlvbnMvI2ZpbmQpLiBJdCB1c2VzIHRoZSBzYW1lIGJhY2tlbmQgbG9naWMgZm9yIGNvbmZpZ3VyYXRpb24gZGlzY292ZXJ5LiBJdCBhbHNvIHN1cHBvcnRzIHZlcnkgc2ltaWxhciBmbGFncyBhbmQgY29uZmlndXJhdGlvbiBvcHRpb25zLgoKR2VuZXJhbGx5LCB0aGUgbGlzdCBjb21tYW5kIGlzIG9wdGltaXplZCBmb3IgZGlzcGxheWluZyBjb25maWd1cmF0aW9ucyBpbiBhIGZvcm1hdCB0aGF0IGlzIGVhc3kgZm9yIGEgaHVtYW4gdG8gcmVhZCBhbmQgdW5kZXJzdGFuZCwgc28gdGhlcmUgYXJlIG1vcmUgY29uZmlndXJhdGlvbiBvcHRpb25zLCBhbmQgdGhlIG91dHB1dCBpcyBtb3JlIHZlcmJvc2UuIE91dHB1dCBmcm9tIHRoZSBsaXN0IGNvbW1hbmQgY2FuIHZhcnkgc2lnbmlmaWNhbnRseSBkZXBlbmRpbmcgb24gdGhlIGZsYWdzIHVzZWQsIGFuZCB0aGUgb3V0cHV0IHN0cnVjdHVyZSBpcyBtb3JlIHZhcmlhYmxlIHRoYW4gdGhhdCBvZiB0aGUgZmluZCBjb21tYW5kLgoKVXNlIHRoZSBsaXN0IGNvbW1hbmQgd2hlbiB5b3Ugd2FudCB0byB2aXN1YWxpemUgeW91ciBUZXJyYWdydW50IGNvbmZpZ3VyYXRpb25zIGluIGEgaHVtYW4tcmVhZGFibGUgZm9ybWF0LiBVc2UgdGhlIGZpbmQgY29tbWFuZCB3aGVuIHlvdSB3YW50IHRvIHByb2dyYW1tYXRpY2FsbHkgc2VhcmNoIGZvciBjb25maWd1cmF0aW9ucyBpbiB5b3VyIGNvZGViYXNlLgoKIyMjIyMgVXNhZ2UKCkJ5IGRlZmF1bHQsIHRoZSBgbGlzdGAgY29tbWFuZCB3aWxsIGRpc3BsYXkgYWxsIGRpc2NvdmVyZWQgY29uZmlndXJhdGlvbnMgd2l0aCBzb21lIHNwYWNpbmcgdG8gZGlzcGxheSBhcyBtYW55IGFzIGl0IGNhbiBvbiBlYWNoIGxpbmUuCgohW2xpc3RdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS91c2VyLWF0dGFjaG1lbnRzL2Fzc2V0cy9kNDQ3M2U3ZS04NWJkLTQ2MjktYWJhMS0wYjk2MDFjMjRkMGMpCgpXaGVuIHRoZSBzaXplIG9mIHRoZSBvdXRwdXQgZXhjZWVkcyB0aGUgd2lkdGggb2YgdGhlIHRlcm1pbmFsLCBlbnRyaWVzIHdpbGwgYmUgYnJva2VuIGludG8gbXVsdGlwbGUgbGluZXMuCgohW2xpc3QtbmFycm93XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdXNlci1hdHRhY2htZW50cy9hc3NldHMvMDI3M2QzMTUtYmIzNS00NjZjLWEzMDgtYWViMmM3NmUzNjk2KQoKVXNlcnMgY2FuIGFkZGl0aW9uYWxseSByZXF1ZXN0IHRoYXQgdGhlIGAtLWxvbmdgIGZvcm1hdCBpcyB1c2VkLCB3aGljaCBicmVha3MgdGhlIHJlc3VsdHMgb3ZlciBpbmRpdmlkdWFsIGxpbmVzIGZvciBlYWNoIGRpc2NvdmVyZWQgY29uZmlndXJhdGlvbi4KCiFbbGlzdC1sb25nXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdXNlci1hdHRhY2htZW50cy9hc3NldHMvNzQ2YTZhMjItMTlmMi00ODQ3LWEwNDgtZjNmYzMzNWI1NDE3KQoKTGlrZSB3aXRoIHRoZSBgZmluZGAgY29tbWFuZCwgdXNlcnMgY2FuIG9wdGlvbmFsbHkgcmVxdWVzdCB0aGF0IGRlcGVuZGVuY2llcyBiZSBkaXNwbGF5ZWQuCgohW2xpc3QtbG9uZy1kZXBlbmRlbmNpZXNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS91c2VyLWF0dGFjaG1lbnRzL2Fzc2V0cy9lNjliMDQyYS03ZDdiLTQ1MDEtYmZlNC1kOTc2NjU0Zjg3YTYpCgpUaGUgZmluYWwgZm9ybWF0IHRoYXQgdGhlIGBsaXN0YCBjb21tYW5kIHN1cHBvcnRzIGlzIHRoZSBgdHJlZWAgZm9ybWF0OgoKIVtsaXN0LXRyZWVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS91c2VyLWF0dGFjaG1lbnRzL2Fzc2V0cy9kZWNhNzQzMi0wOGZmLTQxYTktYmY5OC0xNTMzNzY5OTY2ZDEpCgpMaWtlIHdpdGggdGhlIGBmaW5kYCBjb21tYW5kLCB0aGUgYGxpc3RgIGNvbW1hbmQgc3VwcG9ydHMgdGhlIGAtLWRhZ2AgZmxhZyB3aGljaCBzb3J0cyBhbmQgZ3JvdXBzIHJlc3VsdHMgYWNjb3JkaW5nIHRvIHRoZWlyIHJlbGF0aXZlIHBvc2l0aW9ucyBpbiB0aGUgRGlyZWN0ZWQgQWN5Y2xpYyBHcmFwaCAoREFHKS4KCiFbbGlzdC10cmVlLWRhZ10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzLzJmYTFlMzE0LTVkZTQtNDM4MS1iYWIzLThhMWVlMDE0NDJiNykKCkZvciBtb3JlIGluZm9ybWF0aW9uIHJlYWQgdGhlIGRvY3VtZW50YXRpb24gaW4gW2BsaXN0YF0oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL3JlZmVyZW5jZS9jbGktb3B0aW9ucy8jbGlzdCkuCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgZmVhdDogQWRkaW5nIGBsaXN0YCBjb21tYW5kIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAzNF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAzNCkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzYuMi4uLnYwLjc2LjMKCiMjIyBbYHYwLjc2LjJgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjc2LjIpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc2LjEuLi52MC43Ni4yKQoKIyMjIyDinKggTmV3IEZlYXR1cmVzCgpBZGRlZCBgLS1uby1zdGFjay1nZW5lcmF0ZWAgc3VwcG9ydCBpbiBgc3RhY2sgcnVuYCBhbmQgYHN0YWNrIG91dHB1dGAsIGFsbG93aW5nIHVzZXJzIHRvIGRpc2FibGUgYXV0b21hdGljIHN0YWNrIHJlZ2VuZXJhdGlvbiBiZWZvcmUgZXhlY3V0aW5nIGNvbW1hbmRzLiBUaGlzIHByb3ZpZGVzIGdyZWF0ZXIgY29udHJvbCBvdmVyIHN0YWNrIG9wZXJhdGlvbnMgYnkgYWxsb3dpbmcgY29tbWFuZHMgdG8gdXNlIHRoZSBleGlzdGluZyBgLnRlcnJhZ3J1bnQtc3RhY2tgIGRpcmVjdG9yeSwgaW1wcm92aW5nIGVmZmljaWVuY3kgYW5kIGF2b2lkaW5nIHVubmVjZXNzYXJ5IHVwZGF0ZXMuCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgZmVhdDogQWRkZWQgYC0tbm8tc3RhY2stZ2VuZXJhdGVgIGNsaSBmbGFnIHRvIHNraXAgc3RhY2sgZ2VuZXJhdGlvbiBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAzOV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAzOSkKLSAgIGNocm9lOiBTdGFjayB0ZXN0cyBpbXByb3ZlbWVudHMgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMzNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMzMpCi0gICBjaHJvcmU6IEFkZGluZyBgLmN1cnNvcmAgdG8gYC5naXRpZ25vcmVgIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA0MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA0MCkKLSAgIGRvY3M6IEFkZGluZyBkb2NzIGZvciBgLS1hbGxgIGFuZCBgLS1ncmFwaGAgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDM2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDM2KQotICAgZG9jczogTW92ZSBgaW5mb2AgdG8gYSBiZXR0ZXIgbG9jYXRpb24gYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDM3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDM3KQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ni4xLi4udjAuNzYuMgoKIyMjIFtgdjAuNzYuMWBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuNzYuMSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzYuMC4uLnYwLjc2LjEpCgojIyMjIOKcqCBOZXcgRmVhdHVyZXMKCkludHJvZHVjZWQgYG5vX2RvdF90ZXJyYWdydW50X3N0YWNrYCBzdXBwb3J0IGluIGBzdGFja2AgYW5kIGB1bml0YCwgYWxsb3dpbmcgdXNlcnMgdG8gb3B0IG91dCBvZiBnZW5lcmF0aW5nIGAudGVycmFncnVudC1zdGFja2AgZGlyZWN0b3JpZXMuIFRoaXMgZW5hYmxlcyBzZWFtbGVzcyBhZG9wdGlvbiBvZiBgdGVycmFncnVudC5zdGFjay5oY2xgIHdpdGhvdXQgcmVxdWlyaW5nIHN0YXRlIG1pZ3JhdGlvbiBmb3IgZXhpc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCgpEZW1vOgohW25vX2RvdF90ZXJyYWdydW50X3N0YWNrX2V4YW1wbGVfcmVsZWFzZV9leGFtcGxlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdXNlci1hdHRhY2htZW50cy9hc3NldHMvNTQ2ZDI4MWItM2RiYi00Y2I4LWFmZDMtOWI5OGI3NWI0ZjAyKQoKU3RhY2tzIFJGQzogW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9pc3N1ZXMvMzMxM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2lzc3Vlcy8zMzEzKQoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSAgIGZlYXQ6IGFkZGVkIHN1cHBvcnQgZm9yIHN1cHBvcnQgZm9yIGBub19kb3RfdGVycmFncnVudF9zdGFja2AgaW4gYHN0YWNrYCBhbmQgYHVuaXRgIGJsb2NrcyBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAxOV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAxOSkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzYuMC4uLnYwLjc2LjEKCiMjIyBbYHYwLjc2LjBgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjc2LjApCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc1LjEwLi4udjAuNzYuMCkKCiMjIyMg4pyoIE5ldyBGZWF0dXJlcyAvIPCfm6DvuI8gQnJlYWtpbmcgQ2hhbmdlcwoKIyMjIyMgQ2F0YWxvZy9TY2FmZm9sZCBubyBsb25nZXIgcmVxdWlyZXMgYC0tcm9vdC1maWxlLW5hbWUgcm9vdC5oY2xgCgrinKggVGhlIGBjYXRhbG9nYCBhbmQgYHNjYWZmb2xkYCBjb21tYW5kcyB3aWxsIG5vdyBhdHRlbXB0IHRvIGRpc2NvdmVyIGEgcGFyZW50IGByb290LmhjbGAgZmlsZSBieSBkZWZhdWx0IGFuZCB1c2UgaXQgYXMgdGhlIGRlZmF1bHQgcm9vdCBUZXJyYWdydW50IGNvbmZpZ3VyYXRpb24gd2hlbiBwcmVzZW50IHRvIGhlbHAgdXNlcnMgYWRvcHQgdGhlIGNoYW5nZXMgaW4gW21pZ3JhdGluZy1mcm9tLXJvb3QtdGVycmFncnVudC1oY2xdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9taWdyYXRlL21pZ3JhdGluZy1mcm9tLXJvb3QtdGVycmFncnVudC1oY2wvKS4KClVzZXJzIHRoYXQgaGF2ZSBzd2l0Y2hlZCBvdmVyIHRvIHVzZSBgcm9vdC5oY2xgIGFzIHRoZSByb290IG9mIHRoZWlyIFRlcnJhZ3J1bnQgY29uZmlndXJhdGlvbnMgaW5zdGVhZCBvZiBgdGVycmFncnVudC5oY2xgIHdpbGwgbm8gbG9uZ2VyIG5lZWQgdG8gZXhwbGljaXRseSBwYXNzIGAtLXJvb3QtZmlsZS1uYW1lIHJvb3QuaGNsYCBvciB1c2UgdGhlIFtyb290LXRlcnJhZ3J1bnQtaGNsXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL3N0cmljdC1tb2RlLyNyb290LXRlcnJhZ3J1bnQtaGNsKSBzdHJpY3QgY29udHJvbCB0byBhdXRvbWF0aWNhbGx5IGRpc2NvdmVyIHRoZSByb290IG9mIHRoZWlyIFRlcnJhZ3J1bnQgY29uZmlndXJhdGlvbnMgd2hlbiB1c2luZyBgY2F0YWxvZ2Agb3IgYHNjYWZmb2xkYC4KCvCfm6DvuI8gTm90ZSB0aGF0IHRoaXMgaXMgdGVjaG5pY2FsbHkgYSBicmVha2luZyBjaGFuZ2UgdG8gdGhlIHdheSB0aGF0IGBjYXRhbG9nYCBhbmQgYHNjYWZmb2xkYCB3b3JrLiBXaXRoIHRoaXMgY2hhbmdlLCB1c2VycyB0aGF0IGhhdmUgKmJvdGgqIGEgYHJvb3QuaGNsYCBmaWxlIGFuZCBhIGB0ZXJyYWdydW50LmhjbGAgZmlsZSBhdCB0aGUgcm9vdCBvZiB0aGVpciByZXBvc2l0b3JpZXMgd2lsbCBoYXZlIHRoZSBgcm9vdC5oY2xgIGZpbGUgdXNlZCBpbnN0ZWFkIG9mIHRoZSBgdGVycmFncnVudC5oY2xgIGZpbGUgZm9yIHRoZSBgY2F0YWxvZ2AgYW5kIGBzY2FmZm9sZGAgY29tbWFuZHMuCgpJZiB5b3UgYXJlIG5vdCB5ZXQgcmVhZHkgdG8gcmVuYW1lIHRoZSBgdGVycmFncnVudC5oY2xgIGZpbGUgYXQgdGhlIHJvb3Qgb2YgeW91ciByZXBvc2l0b3J5LCB1c2UgdGhlIGAtLXJvb3QtZmlsZS1uYW1lYCBmbGFnIHRvIGV4cGxpY2l0bHkgcHJvdmlkZSBgdGVycmFncnVudC5oY2xgIGFzIHRoZSBuYW1lIG9mIHRoZSBUZXJyYWdydW50IGNvbmZpZ3VyYXRpb24gYXQgdGhlIHJvb3Qgb2YgeW91ciBUZXJyYWdydW50IHByb2plY3QuCgpUaGlzIGNoYW5nZSB3YXMgbWFkZSBhcyBtb3N0IHVzZXJzIGFyZSB2ZXJ5IHVubGlrZWx5IHRvIGhhdmUgKmJvdGgqIGByb290LmhjbGAgKHRoZSByZWNvbW1lbmRlZCByb290IG9mIFRlcnJhZ3J1bnQgY29uZmlndXJhdGlvbnMpIGFuZCBgdGVycmFncnVudC5oY2xgICh0aGUgbGVnYWN5IHJvb3Qgb2YgVGVycmFncnVudCBjb25maWd1cmF0aW9ucyBpbiB0aGUgc2FtZSBUZXJyYWdydW50IHByb2plY3QpIGF0IHRoZSByb290IG9mIHRoZWlyIFRlcnJhZ3J1bnQgcHJvamVjdC4gVGhpcyBjb25maWd1cmF0aW9uIGlzIGVudGlyZWx5IENMSSBiYXNlZCwgbWFraW5nIGl0IHJlbGF0aXZlbHkgZWFzeSB0byBhZGRyZXNzIGZvciB1c2VycyAoYXMgb3Bwb3NlZCB0byBIQ0wgY29uZmlndXJhdGlvbnMsIHdoaWNoIG1pZ2h0IHRha2UgbW9yZSB0aW1lIGZvciB0ZWFtcyB0byBhZGRyZXNzKS4KClVzZXJzIGxvb2tpbmcgdG8gbW92ZSBmcm9tIGEgcm9vdCBgdGVycmFncnVudC5oY2xgIGZpbGUgdG8gYSBgcm9vdC5oY2xgIGZpbGUgd2lsbCBzdGlsbCBuZWVkIHRvIHJlYWQgdGhyb3VnaCB0aGUgbWlncmF0aW9uIGd1aWRlIHRvIGFkanVzdCBhbGwgdXNhZ2VzIG9mIGBmaW5kX2luX3BhcmVudF9mb2xkZXJzYCB3aGVuIG1ha2luZyB0aGUgc3dpdGNoLgoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSAgIGZpeDogTG9va3VwIHJvb3QuaGNsIGlmIHByZXNlbnQgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDIyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDIyKQotICAgZml4OiBJbXByb3ZpbmcgbG9naWMgZm9yIHNjYWZmb2xkIGRlZmF1bHQgcm9vdCBkaXNjb3ZlcnkgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDI5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDI5KQotICAgZml4OiBGaXhpbmcgY29uZmlndXJhdGlvbiBwYXJzaW5nIG9yZGVyIGxpbmsgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDIxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDIxKQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43NS4xMC4uLnYwLjc2LjAKCiMjIyBbYHYwLjc1LjEwYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43NS4xMCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzUuOS4uLnYwLjc1LjEwKQoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSAgIGZpeDogYWRkcmVzc2luZyBgZ29wbHNgIGZpbmRpbmdzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAxOF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAxOCkKLSAgIGJ1aWxkKGRlcHMpOiBidW1wIGdvbGFuZy5vcmcveC9uZXQgZnJvbSAwLjM1LjAgdG8gMC4zNi4wIGJ5IFtAJiM4MjAzO2RlcGVuZGFib3RdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZXBlbmRhYm90KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAxM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAxMykKLSAgIGJ1aWxkKGRlcHMpOiBidW1wIGdvLm9wZW50ZWxlbWV0cnkuaW8vb3RlbC9leHBvcnRlcnMvb3RscC9vdGxwbWV0cmljL290bHBtZXRyaWNncnBjIHRvIDEuMzUuMCB1cGRhdGUgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMjBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMjApCi0gICBidWlsZChkZXBzKTogYnVtcCBnaXRodWIuY29tL2F3cy9hd3Mtc2RrLWdvLXYyL3NlcnZpY2UvczMgdG8gMS43OC4xIHVwZGF0ZSBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAyMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAyMCkKLSAgIGJ1aWxkKGRlcHMpOiBidW1wIGdvbGFuZy5vcmcveC9tb2QgdG8gMC4yNC4wIHVwZGF0ZSBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAyMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAyMCkKLSAgIGJ1aWxkKGRlcHMpOiBidW1wIGdvLm9wZW50ZWxlbWV0cnkuaW8vb3RlbC9leHBvcnRlcnMvb3RscC9vdGxwdHJhY2Uvb3RscHRyYWNlZ3JwYyB0byAxLjM1LjAgdXBkYXRlIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDIwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDIwKQotICAgYnVpbGQoZGVwcyk6IGJ1bXAgZ28ub3BlbnRlbGVtZXRyeS5pby9vdGVsIHRvIDEuMzUuMCB1cGRhdGUgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMjBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMjApCi0gICBidWlsZChkZXBzKTogYnVtcCBnaXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50LWVuZ2luZS1nbyB0byB2MC4wLjExIHVwZGF0ZSBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAyMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAyMCkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzUuOS4uLnYwLjc1LjEwCgojIyMgW2B2MC43NS45YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43NS45KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43NS44Li4udjAuNzUuOSkKCiMjIyMg8J+QmyBCdWcgZml4ZXMKCiMjIyMjIFVzaW5nIGFic29sdXRlIHBhdGhzIGZvciBgbWFya19hc19yZWFkYAoKVGhlIGludGVybmFsIHN0b3JlIGZvciB0aGUgdmFsdWVzIGBtYXJrX2FzX3JlYWRgIHdhcyB0cmFja2luZyBub3cgdXNlIGFic29sdXRlIHBhdGhzIGluc3RlYWQgb2YgImNhbm9uaWNhbCBwYXRocyIuIFRoZSByZXN1bHQgb2YgdGhpcyBpcyB0aGF0IGV2ZW4gaWYgeW91IGFyZSB1c2luZyB0b29saW5nIGxpa2UgYHJ1bl9jbWRgIHRvIGR5bmFtaWNhbGx5IGRpc2NvdmVyIGZpbGVzIHRvIG1hcmsgYXMgcmVhZCwgeW91IHNob3VsZCBzdGlsbCBleHBlY3QgYC0tcXVldWUtaW5jbHVkZS11bml0cy1yZWFkaW5nYCB0byB3b3JrIGNvcnJlY3RseS4KCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gICBmaXg6IFVzZSBhYnMgcGF0aCBmb3IgYG1hcmtfYXNfcmVhZGAgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDE1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDE1KQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43NS44Li4udjAuNzUuOQoKIyMjIFtgdjAuNzUuOGBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuNzUuOCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzUuNy4uLnYwLjc1LjgpCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgZmVhdDogYWRkZWQgc3VwcG9ydCBmb3JgICAtLXNvdXJjZS1tYXAgYCB3aGVuIGRvd25sb2FkaW5nIHVuaXRzIGFuZCBzdGFja3MgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMTFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMTEpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc1LjcuLi52MC43NS44CgojIyMgW2B2MC43NS43YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43NS43KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43NS42Li4udjAuNzUuNykKCiMjIyMg4pyoIE5ldyBGZWF0dXJlcwoKIyMjIyMgYGZpbmRgIHN1cHBvcnRzIGBkYWdgIHNvcnRpbmcKClRoZSBgZmluZGAgY29tbWFuZCBub3cgc3VwcG9ydHMgdGhlIGFiaWxpdHkgdG8gc29ydCByZXN1bHRzIGJ5IHRoZWlyIHJlbGF0aXZlIHBvc2l0aW9ucyBpbiB0aGUgRGlyZWN0ZWQgQWN5Y2xpYyBHcmFwaCAoREFHKS4KClRvIHVzZSB0aGUgYGZpbmRgIGNvbW1hbmQsIHlvdSBtdXN0IGVuYWJsZSB0aGUgW2BjbGktcmVkZXNpZ25gIGV4cGVyaW1lbnRdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2UvZXhwZXJpbWVudHMvI2NsaS1yZWRlc2lnbikuCgohW3RnLWZpbmQtbm8tZGFnXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdXNlci1hdHRhY2htZW50cy9hc3NldHMvMzYzNjZkZGUtMDU4MS00N2E5LWE0ZjctOTRiMDZmOWRmMGJiKQoKIVt0Zy1maW5kLWRhZ10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzLzAxZDBlZWIxLTc1YmUtNDNlMi04NjU3LTc3ZmY0Y2Y0NmMxOCkKClRoZSBgZmluZGAgY29tbWFuZCBub3cgYWxzbyBzdXBwb3J0cyBkaXNjb3ZlcmluZyBkZXBlbmRlbmNpZXMgb2YgdW5pdHMgd2l0aCB0aGUgbmV3IGAtLWRlcGVuZGVuY2llc2AgZmxhZy4KCiFbdGctZmluZC1kYWctZGVwc10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzLzFlYTljNWE4LTNkMDMtNDA3NS1iNmM4LThmYTljZTY4Mjc0YykKCkluIGFkZGl0aW9uLCBleHRlcm5hbCBkZXBlbmRlbmNpZXMgKGRlcGVuZGVuY2llcyBvdXRzaWRlIHRoZSB3b3JraW5nIGRpcmVjdG9yeSB3aGVyZSBgZmluZGAgd2FzIHJ1biksIGNhbiBiZSBkaXNjb3ZlcmVkIHVzaW5nIHRoZSBgLS1leHRlcm5hbGAgZmxhZy4KCiFbdGctZmluZC1kYWctZXh0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdXNlci1hdHRhY2htZW50cy9hc3NldHMvOTJjOTBiZGUtNjJiYy00MTQ1LWEwNGUtZTI3YmE2ODg0ZjlhKQoKTW9yZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgW2luIHRoZSBgZmluZGAgZG9jc10oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL3JlZmVyZW5jZS9jbGktb3B0aW9ucy8jZmluZC1zb3J0aW5nKS4KCiMjIyMjIFRoZSBgc3RhY2sgcnVuYCBjb21tYW5kIG5vdyBzdXBwb3J0cyBhbGwgYHJ1bmAgZmxhZ3MKClRoZSBgc3RhY2sgcnVuYCBjb21tYW5kIG5vdyBzdXBwb3J0cyBhbGwgdGhlIHNhbWUgZmxhZ3MgYHJ1bmAgc3VwcG9ydHMsIGluY2x1ZGluZyBgLS1xdWV1ZS1pbmNsdWRlLWRpcmAuCgpUbyB1c2UgYHN0YWNrYCBjb21tYW5kcywgeW91IG11c3QgZW5hYmxlIHRoZSBbYHN0YWNrc2BdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2UvZXhwZXJpbWVudHMvI3N0YWNrcykgZXhwZXJpbWVudC4KCkFzIGFuIGV4YW1wbGUgb2Ygd2hhdCdzIHN1cHBvcnRlZCBub3c6CgpgYGBiYXNoCnRlcnJhZ3J1bnQgLS1leHBlcmltZW50IHN0YWNrcyBzdGFjayBydW4gYXBwbHkgLS1xdWV1ZS1zdHJpY3QtaW5jbHVkZSAtLXF1ZXVlLWluY2x1ZGUtZGlyPS4vLnRlcnJhZ3J1bnQtc3RhY2svYXBwMSAtLW5vbi1pbnRlcmFjdGl2ZQpgYGAKCk1vcmUgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIFtpbiB0aGUgYHN0YWNrIHJ1bmAgZG9jc10oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL3JlZmVyZW5jZS9jbGktb3B0aW9ucy8jc3RhY2stcnVuKS4KCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gICBmZWF0OiBTdXBwb3J0IGFsbCBgcnVuYCBjbGkgZmxhZ3MgaW4gdGhlIFN0YWNrIGNvbW1hbmQgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMDVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMDUpCi0gICBmZWF0OiBBZGRpbmcgREFHIHN1cHBvcnQgdG8gZmluZCBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMDFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMDEpCi0gICBmaXg6IFVwZ3JhZGluZyBgZ29sYW5nY2ktbGludGAgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTg3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTg3KQotICAgZml4OiBSZWR1Y2luZyBub2lzZSBmb3Igc2tpcHBlZCBkZXBlbmRlbmN5IGlucHV0cyBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMDddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMDcpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc1LjYuLi52MC43NS43CgojIyMgW2B2MC43NS42YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43NS42KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43NS41Li4udjAuNzUuNikKCiMjIyMg4pyoIE5ldyBGZWF0dXJlcwoKIyMjIyMgSWFDIEVuZ2luZSBEZXBlbmRlbmN5IFN1cHBvcnQKCklhQyBFbmdpbmVzIGFyZSBub3cgdXNlZCBkdXJpbmcgZGVwZW5kZW5jeSBldmFsdWF0aW9uIHdoZW4gZW5hYmxlZC4gVGhpcyByZXN1bHRzIGluIG1vcmUgY292ZXJhZ2UgYnkgSWFDIGVuZ2luZXMgd2hlbiBlbmFibGVkLCByZWR1Y2luZyB0aGUgcmVsaWFuY2Ugb24gdGhlIHByZXNlbmNlIG9mIE9wZW5Ub2Z1L1RlcnJhZm9ybSBvbiBob3N0IG1hY2hpbmVzIHdoZW4gdXNpbmcgSWFDIEVuZ2luZXMuCgpUaGFua3MgdG8gW0AmIzgyMDM7cGFydGN5Ym9yZ10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3BhcnRjeWJvcmcpIGZvciBzdWJtaXR0aW5nIHRoaXMgY2hhbmdlLgoKIyMjIyDwn5qXIFBlcmZvcm1hbmNlIEltcHJvdmVtZW50cwoKR2VuZXJhdGlvbiBvZiBgdGVycmFncnVudC5zdGFjay5oY2xgIGZpbGVzIGFyZSBub3cgZG9uZSBpbiBwYXJhbGxlbC4gVGhpcyBjYW4gcmVzdWx0IGluIHNpZ25pZmljYW50IHNwZWVkdXBzIGZvciB1c2VycyB3aXRoIG11bHRpcGxlIHVuaXRzIG9yIG5lc3RlZCBzdGFja3MgaW4gYHRlcnJhZ3J1bnQuc3RhY2suaGNsYCBmaWxlcy4KCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gICBmZWF0OiBhZGQgZW5naW5lIHN1cHBvcnQgdG8gZGVwZW5kZW5jaWVzIGJ5IFtAJiM4MjAzO3BhcnRjeWJvcmddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9wYXJ0Y3lib3JnKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk3NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk3NCkKLSAgIGZlYXQ6IGVuZ2luZSBjb25maWcgaW4gZGVwZW5kZW5jaWVzIGltcHJvdmVtZW50cyBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMDJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwMDIpCi0gICBmZWF0OiBhZGRlZCBzdXBwb3J0IGZvciBwYXJhbGxlbCBzdGFja3MgZ2VuZXJhdGlvbiBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk5OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk5OSkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzUuNS4uLnYwLjc1LjYKCiMjIyBbYHYwLjc1LjVgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjc1LjUpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc1LjQuLi52MC43NS41KQoKIyMjIyDinKggTmV3IEZlYXR1cmVzCgpUaGlzIHJlbGVhc2UgaW50cm9kdWNlcyBleHBlcmltZW50YWwgc3VwcG9ydCBmb3IgdGhlIFRlcnJhZ3J1bnQgQ29udGVudCBBZGRyZXNzYWJsZSBTdG9yZSAoQ0FTKS4KClRvIGVuYWJsZSB0aGlzIGZlYXR1cmUsIHlvdSBtdXN0IHVzZSB0aGUgW2Nhc10oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL3JlZmVyZW5jZS9leHBlcmltZW50cy8jY2FzKSBleHBlcmltZW50LgoKV2hlbiB1c2luZyB0aGUgQ0FTLCB0aGUgYGNhdGFsb2dgIGNvbW1hbmQgd2lsbCBzdG9yZSBpdHMgY29udGVudHMgaW4gYSBDQVMgdG8gZGVkdXBsaWNhdGUgcmVwb3NpdG9yeSBjb250ZW50cywgdGhlbiBjb25zdHJ1Y3QgdGhlIHJlc3VsdGFudCByZXBvIGZyb20gdGhlIENBUy4KCllvdSBjYW4gdXNlIEdpdCBVUkxzIGZvciB0aGUgYGNhdGFsb2dgIGNvbW1hbmQgbm9ybWFsbHksIGFuZCB3aGVuIHRoZSBgY2FzYCBleHBlcmltZW50IGlzIGVuYWJsZWQsIFRlcnJhZ3J1bnQgd2lsbCBsZXZlcmFnZSB0aGUgQ0FTIHRvIHNhdmUgeW91IGNsb25lIHRpbWUgYW5kIGRpc2sgc3BhY2U6CgpgYGBoY2wKY2F0YWxvZyB7CiAgdXJscyA9IFsKICAgICJnaXRAZ2l0aHViLmNvbTphY21lL21vZHVsZXMuZ2l0IgogIF0KfQpgYGAKClRoZXJlIGFyZSBtb3JlIHBsYW5uZWQgaW50ZWdyYXRpb24gcG9pbnRzIGZvciB0aGUgQ0FTLCBidXQgZm9yIG5vdyBvbmx5IHRoZSBgY2F0YWxvZ2AgY29tbWFuZCBpcyBzdXBwb3J0ZWQuCgpZb3UgY2FuIGxlYXJuIG1vcmUgYWJvdXQgdGhlIENBUyBpbiB0aGUgW2ZlYXR1cmUgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL2ZlYXR1cmVzL2Nhcy8pLgoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSAgIGZlYXQ6IEFkZGluZyBjYXMgc3VwcG9ydCB0byBjYXRhbG9nIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzkyOV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzkyOSkKLSAgIGZpeDogRW5naW5lIHRlc3RzIGltcHJvdmVtZW50cyBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk5NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk5NSkKLSAgIGZpeDogQWRkaW5nIGludGVncmF0aW9uIHRlc3RpbmcgdG8gdGhlIGBmaW5kYCBjb21tYW5kLiBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5OTddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5OTcpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc1LjQuLi52MC43NS41CgojIyMgW2B2MC43NS40YF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43NS40KQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43NS4zLi4udjAuNzUuNCkKCiMjIyMg4pyoIE5ldyBGZWF0dXJlcwoKIyMjIyMgVGhlIGBmaW5kYCBjb21tYW5kCgpUaGlzIHJlbGVhc2UgaW50cm9kdWNlcyBleHBlcmltZW50YWwgc3VwcG9ydCBmb3IgdGhlIGBmaW5kYCBjb21tYW5kLgoKVG8gdXNlIGl0LCB5b3Ugd2lsbCBuZWVkIHRvIGVuYWJsZSB0aGUgW2BjbGktcmVkZXNpZ25gXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL2V4cGVyaW1lbnRzLyNjbGktcmVkZXNpZ24tLS1jcml0ZXJpYS1mb3Itc3RhYmlsaXphdGlvbikgZXhwZXJpbWVudC4KClRoZSBgZmluZGAgY29tbWFuZCBhbGxvd3MgZm9yIGVhc3kgZGlzY292ZXJ5IG9mIFt1bml0XShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvZ2V0dGluZy1zdGFydGVkL3Rlcm1pbm9sb2d5LyN1bml0KSBhbmQgW3N0YWNrXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvZ2V0dGluZy1zdGFydGVkL3Rlcm1pbm9sb2d5LyNzdGFjaykgY29uZmlndXJhdGlvbnMgaW4gYSBUZXJyYWdydW50IGNvZGViYXNlLgoKQnkgZGVmYXVsdCwgcmVzdWx0cyBhcmUgY29sb3IgY29kZWQgdG8gbWFrZSBpdCBlYXN5IHRvIGRpc2Nlcm4gZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24gdHlwZXM6CgohW3RnLWZpbmRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS91c2VyLWF0dGFjaG1lbnRzL2Fzc2V0cy9iYjQzNTk2Yi1lOWEwLTRkNmUtYjUwNC1lY2U4YzFmNmM5NmUpCgpXaGVuIHBpcGVkIGludG8gYW5vdGhlciBjb21tYW5kLCBUZXJyYWdydW50IHdpbGwgYXV0b21hdGljYWxseSByZW1vdmUgdGhvc2UgY29sb3JzIHNvIHRoYXQgaXQgd29uJ3QgaW50ZXJmZXJlIHdpdGggYW55IHBvc3QtcHJvY2Vzc2luZzoKCiFbdGctZmluZC1waXBlZF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzLzUwZDIwZmI3LTU4YTgtNDNjNy04OTExLTIxODQzNGViMzg4OCkKClJlc3VsdHMgY2FuIGFsc28gYmUgZW1pdHRlZCBpbiBKU09OIGZvcm1hdCBmb3IgbW9yZSBhZHZhbmNlZCB1c2UtY2FzZXM6CgohW3RnLWZpbmQtanNvbl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzLzk1NWNiZmU0LTQxNDctNDQ5Yi05YWM0LTc3NzlhNjhiMWFlZCkKClRoaXMgaXMgdGhlIGluaXRpYWwsIG1pbmltYWwgaW1wbGVtZW50YXRpb24gb2YgdGhlIGNvbW1hbmQsIHdpdGggbW9yZSBmdW5jdGlvbmFsaXR5IHRvIGNvbWUgaW4gdGhlIG5lYXIgZnV0dXJlLgoKWW91IGNhbiBsZWFybiBtb3JlIGFib3V0IHRoZSBjb21tYW5kIFtoZXJlXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL2NsaS1vcHRpb25zLyNmaW5kKS4KCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gICBmZWF0OiBBZGRpbmcgYGZpbmRgIGNvbW1hbmQgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTgxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTgxKQotICAgZml4OiBBZGRpbmcgZG9jcyBmcm9tIHJvbGUgYXNzdW1wdGlvbiB1cGRhdGVzIGluIEpla3lsbCBkb2NzIHRvIFN0YXJsaWdodCBkb2NzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk4NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk4NSkKLSAgIGZpeDogRml4ZWQgZmFpbGluZyBDaXJjbGVDSSBqb2JzIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTg4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTg4KQotICAgZml4OiBSZW1vdmUgdXNhZ2Ugb2YgdGVtcGxhdGUgcHJvdmlkZXIgaW4gdGV4dCBmaXh0dXJlcyBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5ODZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5ODYpCi0gICBidWlsZChkZXBzKTogYnVtcCBnaXRodWIuY29tL2dydW50d29yay1pby90ZXJyYXRlc3QgZnJvbSAwLjQ3LjIgdG8gMC40OC4yIGJ5IFtAJiM4MjAzO2RlcGVuZGFib3RdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZXBlbmRhYm90KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzg1OF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzg1OCkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzUuMy4uLnYwLjc1LjQKCiMjIyBbYHYwLjc1LjNgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjc1LjMpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc1LjIuLi52MC43NS4zKQoKIyMjIyDinKggTmV3IEZlYXR1cmVzCgpUaGlzIHJlbGVhc2UgaW50cm9kdWNlcyBzdXBwb3J0IGZvciBhbGwgdGhlIHJlbWFpbmluZyBgYXNzdW1lX3JvbGVgIGFyZ3VtZW50cyB1c2VkIGJ5IE9wZW5Ub2Z1L1RlcnJhZm9ybSBiYWNrZW5kcy4KClRoYW5rIHlvdSB0byBbQCYjODIwMztlcnBlbF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2VycGVsKSBmb3IgY29udHJpYnV0aW5nIHRoaXMhCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgZmVhdDogQWRkIHN1cHBvcnQgZm9yIGFsbCBhc3N1bWVfcm9sZSBibG9jayBhcmd1bWVudHMgZm9yIHMzIGJhY2tlbmQgYnkgW0AmIzgyMDM7ZXJwZWxdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9lcnBlbCkgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NzVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NzUpCi0gICBmaXg6IEFkanVzdGluZyBjb250cmlidXRpb24gZG9jcyBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NzldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NzkpCi0gICBjaG9yZTogQnVtcGluZyBEZXBlbmRlbmNpZXMgYXMgcmVxdWVzdGVkIGJ5IERlcGVuZGFib3QgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTg0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTg0KQotICAgZG9jczogdXBkYXRlIGNvbnRyaWJ1dGluZy5tZCB3aXRoIGRldiBjb250YWluZXJzIGVudHJ5IGJ5IFtAJiM4MjAzO2oydWRldl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2oydWRldikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NzddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NzcpCgojIyMjIE5ldyBDb250cmlidXRvcnMKCi0gICBbQCYjODIwMztlcnBlbF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2VycGVsKSBtYWRlIHRoZWlyIGZpcnN0IGNvbnRyaWJ1dGlvbiBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk3NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk3NSkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzUuMi4uLnYwLjc1LjMKCiMjIyBbYHYwLjc1LjJgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjc1LjIpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc1LjEuLi52MC43NS4yKQoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSAgIFN0YWNrczogYWRkZWQgc3VwcG9ydCBmb3Igc3RhY2sgdmFsdWVzIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTYxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTYxKQoKRXhhbXBsZSBIQ0wgY29uZmlndXJhdGlvbjoKCmBgYGhjbApzdGFjayAiZGV2IiB7CiAgc291cmNlID0gInN0YWNrcy9kZXYiCiAgcGF0aCAgID0gImRldiIKCiMjIyBuZXcgdmFsdWVzIGJsb2NrCiAgdmFsdWVzID0gewogICAgcHJvamVjdCA9ICJkZXYtcHJvamVjdCIKICAgIGVudiAgICAgPSAiZGV2IgogIH0KfQpgYGAKClJGQzogW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9pc3N1ZXMvMzMxM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2lzc3Vlcy8zMzEzKQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43NS4xLi4udjAuNzUuMgoKIyMjIFtgdjAuNzUuMWBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuNzUuMSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzUuMC4uLnYwLjc1LjEpCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgZmVhdDogU3RyaWN0IGNvbnRyb2wgZm9yIG9sZCBkZXByZWNhdGVkIGVudiB2YXJzIGJ5IFtAJiM4MjAzO2xldmtvaGltaW5zXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbGV2a29oaW1pbnMpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTY0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTY0KQotICAgZmVhdDogQWRkaW5nIGAuY29kZXJhYmJpdC55YW1sYCBmaWxlIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk2OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk2OSkKLSAgIGZpeDogVXBkYXRlZCBmYWlsaW5nIGVuZ2luZSB0ZXN0cyBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk2MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk2MCkKLSAgIGZpeDogUmVwbGFjaW5nIHVzYWdlIG9mIGBydW4tYWxsYCB3aXRoIGBydW4gLS1hbGxgIGluIHN0YXJsaWdodCBkb2NzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk1MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk1MCkKLSAgIGZpeDogVXBkYXRlIG1hcmtfYXNfcmVhZCBleGFtcGxlIGFuZCBkb2NzIGJ5IFtAJiM4MjAzO29kZ3JpbV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL29kZ3JpbSkgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NzFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NzEpCi0gICBmaXg6IEFkZGluZyBtaXNzaW5nIGNhdXRpb25hcnkgYXNpZGVzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk3MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk3MCkKLSAgIGNob3JlOiBUb2Z1IGVuZ2luZSB1cGRhdGUgdG8gdjAuMC4xNiBpbiB0ZXN0cyBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk1MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk1MSkKLSAgIGJ1aWxkKGRlcHMtZGV2KTogYnVtcCB1cmkgZnJvbSAwLjEzLjAgdG8gMC4xMy4yIGluIC9kb2NzIGJ5IFtAJiM4MjAzO2RlcGVuZGFib3RdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZXBlbmRhYm90KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk2M10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk2MykKCiMjIyMgTmV3IENvbnRyaWJ1dG9ycwoKLSAgIFtAJiM4MjAzO29kZ3JpbV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL29kZ3JpbSkgbWFkZSB0aGVpciBmaXJzdCBjb250cmlidXRpb24gaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NzFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NzEpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc1LjAuLi52MC43NS4xCgojIyMgW2B2MC43NS4wYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43NS4wKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43NC4wLi4udjAuNzUuMCkKCioqVGVycmFmb3JtIDEuMTEgc3VwcG9ydCoqOiBXZSBhcmUgbm93IHRlc3RpbmcgVGVycmFncnVudCBhZ2FpbnN0IFRlcnJhZm9ybSAxLjExIGFuZCBpcyBjb25maXJtZWQgdG8gYmUgd29ya2luZy4KCk5PVEU6IEFsdGhvdWdoIHRoaXMgcmVsZWFzZSBpcyBtYXJrZWQgYXMgYmFja3dhcmQgaW5jb21wYXRpYmxlLCBpdCBpcyBmdW5jdGlvbmFsbHkgY29tcGF0aWJsZSBhcyBub3RoaW5nIGhhcyBiZWVuIGNoYW5nZWQgaW4gVGVycmFncnVudCBpbnRlcm5hbHMuIFRoZSBtaW5vciB2ZXJzaW9uIHJlbGVhc2UgaXMgdXNlZnVsIHRvIG1hcmsgdGhlIGNoYW5nZSBpbiBUZXJyYWZvcm0gdmVyc2lvbiB0aGF0IGlzIGJlaW5nIHRlc3RlZC4KCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gICBmZWF0OiBBZGRlZCBzdXBwb3J0IGZvciBUZXJyYWZvcm0gMS4xMSBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk1OF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk1OCkKLSAgIGZpeDogY29ycmVjdGVkIGNvbW1hbmQgYHJ1biAtLSBncmFwaGAgYnkgW0AmIzgyMDM7bGV2a29oaW1pbnNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9sZXZrb2hpbWlucykgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NTldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NTkpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc0LjAuLi52MC43NS4wCgojIyMgW2B2MC43NC4wYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43NC4wKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43My4xNi4uLnYwLjc0LjApCgojIyMjIERlc2NyaXB0aW9uCgoqKlRlcnJhZm9ybSAxLjEwIHN1cHBvcnQqKjogV2UgYXJlIG5vdyB0ZXN0aW5nIFRlcnJhZ3J1bnQgYWdhaW5zdCBUZXJyYWZvcm0gMS4xMCBhbmQgaXMgY29uZmlybWVkIHRvIGJlIHdvcmtpbmcuCgpOT1RFOiBBbHRob3VnaCB0aGlzIHJlbGVhc2UgaXMgbWFya2VkIGFzIGJhY2t3YXJkIGluY29tcGF0aWJsZSwgaXQgaXMgZnVuY3Rpb25hbGx5IGNvbXBhdGlibGUgYXMgbm90aGluZyBoYXMgYmVlbiBjaGFuZ2VkIGluIFRlcnJhZ3J1bnQgaW50ZXJuYWxzLiBUaGUgbWlub3IgdmVyc2lvbiByZWxlYXNlIGlzIHVzZWZ1bCB0byBtYXJrIHRoZSBjaGFuZ2UgaW4gVGVycmFmb3JtIHZlcnNpb24gdGhhdCBpcyBiZWluZyB0ZXN0ZWQuCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgZmVhdDogSW1wbGVtZW50YXRpb24gb2YgYC0tYWxsYCBgLS1ncmFwaGAgZmxhZ3MgYnkgW0AmIzgyMDM7bGV2a29oaW1pbnNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9sZXZrb2hpbWlucykgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NDRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5NDQpCi0gICBmZWF0OiBBZGRlZCBzdXBwb3J0IGZvciBUZXJyYWZvcm0gMS4xMCBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzYwNV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzYwNSkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzMuMTYuLi52MC43NC4wCgojIyMgW2B2MC43My4xNmBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuNzMuMTYpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjczLjE1Li4udjAuNzMuMTYpCgojIyMjIOKcqCBOZXcgRmVhdHVyZXMKCkFkZGVkIHN1cHBvcnQgZm9yIG5lc3RlZCBzdGFja3MsIGVuYWJsaW5nIG1vcmUgZmxleGlibGUgYW5kIG1vZHVsYXIgc3RhY2sgY29uZmlndXJhdGlvbnMuCgpEZW1vOgoKIVtuZXN0ZWQtc3RhY2tzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdXNlci1hdHRhY2htZW50cy9hc3NldHMvMTJiNWMyZTEtZjU4ZS00NDg4LTg3M2YtZWU4Yjk0ZTcyYWZjKQoKVG8gdHJ5IGl0IG91dCwgbWFrZSBzdXJlIHlvdSBlbmFibGUgdGhlIFtzdGFja3MgZXhwZXJpbWVudF0oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL3JlZmVyZW5jZS9leHBlcmltZW50cy8jc3RhY2tzKS4KClJGQzogW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9pc3N1ZXMvMzMxM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2lzc3Vlcy8zMzEzKQoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSAgIGZlYXQ6IGFkZGVkIHN1cHBvcnQgZm9yIG5lc3RlZCBzdGFja3MgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5MDBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzM5MDApCi0gICBkb2NzOiBTdXBwb3J0IG5ldyBwcmUtcmVsZWFzZSBwcm9jZXNzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk0MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvMzk0MSkKLSAgIGJ1aWxkKGRlcHMpOiBidW1wIGdpdGh1Yi5jb20vZ28tam9zZS9nby1qb3NlL3Y0IGZyb20gNC4wLjQgdG8gNC4wLjUgYnkgW0AmIzgyMDM7ZGVwZW5kYWJvdF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlcGVuZGFib3QpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTMwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC8zOTMwKQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43My4xNS4uLnYwLjczLjE2Cgo8L2RldGFpbHM+CgotLS0KCiMjIyBDb25maWd1cmF0aW9uCgrwn5OFICoqU2NoZWR1bGUqKjogQnJhbmNoIGNyZWF0aW9uIC0gQXQgYW55IHRpbWUgKG5vIHNjaGVkdWxlIGRlZmluZWQpLCBBdXRvbWVyZ2UgLSBBdCBhbnkgdGltZSAobm8gc2NoZWR1bGUgZGVmaW5lZCkuCgrwn5qmICoqQXV0b21lcmdlKio6IERpc2FibGVkIGJ5IGNvbmZpZy4gUGxlYXNlIG1lcmdlIHRoaXMgbWFudWFsbHkgb25jZSB5b3UgYXJlIHNhdGlzZmllZC4KCuKZuyAqKlJlYmFzaW5nKio6IFdoZW5ldmVyIFBSIGJlY29tZXMgY29uZmxpY3RlZCwgb3IgeW91IHRpY2sgdGhlIHJlYmFzZS9yZXRyeSBjaGVja2JveC4KCvCflJUgKipJZ25vcmUqKjogQ2xvc2UgdGhpcyBQUiBhbmQgeW91IHdvbid0IGJlIHJlbWluZGVkIGFib3V0IHRoaXMgdXBkYXRlIGFnYWluLgoKLS0tCgogLSBbIF0gPCEtLSByZWJhc2UtY2hlY2sgLS0+SWYgeW91IHdhbnQgdG8gcmViYXNlL3JldHJ5IHRoaXMgUFIsIGNoZWNrIHRoaXMgYm94CgotLS0KClRoaXMgUFIgd2FzIGdlbmVyYXRlZCBieSBbTWVuZCBSZW5vdmF0ZV0oaHR0cHM6Ly9tZW5kLmlvL3Jlbm92YXRlLykuIFZpZXcgdGhlIFtyZXBvc2l0b3J5IGpvYiBsb2ddKGh0dHBzOi8vZGV2ZWxvcGVyLm1lbmQuaW8vZ2l0aHViL29zaXNtL3Rlc3RiZWQpLgo8IS0tcmVub3ZhdGUtZGVidWc6ZXlKamNtVmhkR1ZrU1c1V1pYSWlPaUl6T1M0eE56WXVNaUlzSW5Wd1pHRjBaV1JKYmxabGNpSTZJak01TGpJd055NHhJaXdpZEdGeVoyVjBRbkpoYm1Ob0lqb2liV0ZwYmlJc0lteGhZbVZzY3lJNld5SnlaVzV2ZG1GMFpTSmRmUT09LS0+Cg==
      patchset: 3481ae05f11cc6d78a19b587400010e8827039c4
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: fa94074a33c2a4b1ff3eaadb063e1f29046bf671
          trusted/project_1/opendev.org/zuul/zuul-jobs:
            canonical_name: opendev.org/zuul/zuul-jobs
            checkout: master
            commit: 2334a41776ff4b0ac29fae001fea8ff7e52c4c98
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: dbe45ee47ddf5e6d0630bc342ea3bba9baf9d2d1
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: fa94074a33c2a4b1ff3eaadb063e1f29046bf671
          untrusted/project_2/opendev.org/zuul/zuul-jobs:
            canonical_name: opendev.org/zuul/zuul-jobs
            checkout: master
            commit: 2334a41776ff4b0ac29fae001fea8ff7e52c4c98
        playbooks:
        - path: untrusted/project_0/github.com/osism/zuul-jobs/playbooks/flake8/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/zuul-jobs
            link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs
            role_path: ansible/playbook_0/role_2/zuul-jobs/roles
      post_review: false
      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: d3bac71d63b810ff2f96151c491e34c83574e48e
          name: osism/testbed
          required: false
          short_name: testbed
          src_dir: src/github.com/osism/testbed
      ref: refs/pull/2615/head
      resources: {}
      tenant: osism
      timeout: 1800
      voting: true
