all:
  hosts:
    ubuntu-noble:
      ansible_connection: ssh
      ansible_host: 81.163.192.67
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 970b9a38-e291-42bb-b84a-2eb4d97bb4b4
        host_id: 0d3d02185f810c959252bd1d303ec55040bf5bb0b401cceef814c3a7
        interface_ip: 81.163.192.67
        label: ubuntu-noble
        private_ipv4: 10.128.0.104
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.192.67
        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: 10ab4d0027ff4c1f8b4a2e0764fd5b23
      buildset: ccd1f9855fd94e468d811b8dd0dd3a39
      change: '2654'
      change_message: "chore(deps): update dependency gruntwork-io/terragrunt to v0.77.12\n\
        \nThis PR contains the following updates:\n\n| Package | Update | Change |\n\
        |---|---|---|\n| [gruntwork-io/terragrunt](https://redirect.github.com/gruntwork-io/terragrunt)\
        \ | patch | `v0.77.3` -> `v0.77.12` |\n\n---\n\n### Release Notes\n\n<details>\n\
        <summary>gruntwork-io/terragrunt (gruntwork-io/terragrunt)</summary>\n\n###\
        \ [`v0.77.12`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.77.12)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.77.11...v0.77.12)\n\
        \n#### \u2728 New Features\n\nIntroduced `no_validation` attribute for `stack`\
        \ and `unit`, allowing users to bypass Terragrunt's validation checks when\
        \ deploying infrastructure. This is particularly useful in scenarios where\
        \ you need to deploy infrastructure that doesn't strictly adhere to Terragrunt's\
        \ validation rules, such as during emergency deployments or when working with\
        \ legacy infrastructure patterns.\n\n#### What's Changed\n\n-   docs: added\
        \ more docs for stacks by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4144](https://redirect.github.com/gruntwork-io/terragrunt/pull/4144)\n\
        -   feat: added support for `no_validation` attribute for `stack` and `unit`\
        \ by [@&#8203;denis256](https://redirect.github.com/denis256) in [https://github.com/gruntwork-io/terragrunt/pull/4149](https://redirect.github.com/gruntwork-io/terragrunt/pull/4149)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.77.11...v0.77.12\n\
        \n### [`v0.77.11`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.77.11)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.77.10...v0.77.11)\n\
        \n#### \u2728 New Features\n\n##### Introduction of the `info print` command\n\
        \nAs part of the [CLI Redesign](https://terragrunt.gruntwork.io/docs/reference/experiments/#cli-redesign)\
        \ experiment, the [`info print`](https://terragrunt.gruntwork.io/docs/reference/cli-options/#print-command)\
        \ command has been introduced.\n\n![help](https://redirect.github.com/user-attachments/assets/2eac4645-93c2-47dd-8dc3-73c4442bf1c8)\n\
        \n![out](https://redirect.github.com/user-attachments/assets/7005c5db-15e1-4efe-b5a8-349a179f6033)\n\
        \n#### What's Changed\n\n-   feat: Introduced the `info print` command to\
        \ output Terragrunt context as a structured JSON object by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4122](https://redirect.github.com/gruntwork-io/terragrunt/pull/4122)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.77.10...v0.77.11\n\
        \n### [`v0.77.10`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.77.10)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.77.9...v0.77.10)\n\
        \n#### What's Changed\n\n-   fix: Suppressing warning for catalog when determining\
        \ default file name by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4134](https://redirect.github.com/gruntwork-io/terragrunt/pull/4134)\n\
        -   fix: Remove warning message for unimplemented backends by [@&#8203;levkohimins](https://redirect.github.com/levkohimins)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4138](https://redirect.github.com/gruntwork-io/terragrunt/pull/4138)\n\
        -   fix: Fixing optional default template by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4141](https://redirect.github.com/gruntwork-io/terragrunt/pull/4141)\n\
        -   chore: stack code improvements by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4136](https://redirect.github.com/gruntwork-io/terragrunt/pull/4136)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.77.9...v0.77.10\n\
        \n### [`v0.77.9`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.77.9)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.77.8...v0.77.9)\n\
        \n#### \U0001F41B Bug fixes\n\n##### Fetching Outputs from Nested Stacks\n\
        \nResolved an issue that prevented the correct retrieval of outputs from nested\
        \ stacks.\n\n#### What's Changed\n\n-   fix: corrected the logic for fetching\
        \ outputs from nested stacks by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4126](https://redirect.github.com/gruntwork-io/terragrunt/pull/4126)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.77.8...v0.77.9\n\
        \n### [`v0.77.8`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.77.8)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.77.7...v0.77.8)\n\
        \n#### \U0001F4D6 Documentation Updates\n\nA new [performance guide](https://terragrunt.gruntwork.io/docs/troubleshooting/performance/)\
        \ has been added to Terragrunt documentation to offer guidance on how performance\
        \ can be improved when using Terragrunt or contributing to the Terragrunt\
        \ codebase.\n\nThis documentation will evolve over time, as more optional\
        \ optimizations become available, or are no longer necessary, as they become\
        \ default behavior.\n\n#### What's Changed\n\n-   feat: Add performance guide\
        \ by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [https://github.com/gruntwork-io/terragrunt/pull/4120](https://redirect.github.com/gruntwork-io/terragrunt/pull/4120)\n\
        -   build(deps): bump ruby/setup-ruby from 1.221.0 to 1.229.0 by [@&#8203;dependabot](https://redirect.github.com/dependabot)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4100](https://redirect.github.com/gruntwork-io/terragrunt/pull/4100)\n\
        -   fix: Addressing commas in external IDs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4128](https://redirect.github.com/gruntwork-io/terragrunt/pull/4128)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.77.7...v0.77.8\n\
        \n### [`v0.77.7`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.77.7)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.77.6...v0.77.7)\n\
        \n#### \u2728 New Features\n\nUsers can now configure a custom default template\
        \ for `scaffold` and `catalog` commands in their `catalog` configuration blocks\
        \ like so:\n\n```hcl\ncatalog {\n  default_template = \"git@github.com/acme/example.git//path/to/template\"\
        \n}\n```\n\nFor more information, read the documentation in the [catalog feature](https://terragrunt.gruntwork.io/docs/features/catalog/#custom-templates-for-scaffolding).\n\
        \nSpecial thanks to [@&#8203;tgeijg](https://redirect.github.com/tgeijg) for\
        \ contributing this feature!\n\n#### What's Changed\n\n-   feat: Adding custom\
        \ default template [#&#8203;3658](https://redirect.github.com/gruntwork-io/terragrunt/issues/3658)\
        \ by [@&#8203;tgeijg](https://redirect.github.com/tgeijg) in [https://github.com/gruntwork-io/terragrunt/pull/4035](https://redirect.github.com/gruntwork-io/terragrunt/pull/4035)\n\
        -   fix: Updating docs after [#&#8203;4035](https://redirect.github.com/gruntwork-io/terragrunt/issues/4035)\
        \ by [@&#8203;yhakbar](https://redirect.github.com/yhakbar) in [https://github.com/gruntwork-io/terragrunt/pull/4117](https://redirect.github.com/gruntwork-io/terragrunt/pull/4117)\n\
        -   chore: stacks documentation improvements by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4114](https://redirect.github.com/gruntwork-io/terragrunt/pull/4114)\n\
        \n#### New Contributors\n\n-   [@&#8203;tgeijg](https://redirect.github.com/tgeijg)\
        \ made their first contribution in [https://github.com/gruntwork-io/terragrunt/pull/4035](https://redirect.github.com/gruntwork-io/terragrunt/pull/4035)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.77.6...v0.77.7\n\
        \n### [`v0.77.6`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.77.6)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.77.5...v0.77.6)\n\
        \n#### What's Changed\n\n-   fix: Correctly ignore lock table encryption setting\
        \ to prevent unintended configuration overrides by [@&#8203;levkohimins](https://redirect.github.com/levkohimins)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4112](https://redirect.github.com/gruntwork-io/terragrunt/pull/4112)\n\
        -   fix: Introduced stricter constraints for detecting stack configuration\
        \ files by [@&#8203;denis256](https://redirect.github.com/denis256) in [https://github.com/gruntwork-io/terragrunt/pull/4113](https://redirect.github.com/gruntwork-io/terragrunt/pull/4113)\n\
        -   feat: Enabled parsing of stack configuration directly from a string input\
        \ for enhanced integration with 3rd party code by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4110](https://redirect.github.com/gruntwork-io/terragrunt/pull/4110)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.77.5...v0.77.6\n\
        \n### [`v0.77.5`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.77.5)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.77.4...v0.77.5)\n\
        \n#### What's Changed\n\n-   feat: added support for OpenTelemetry in `stack`\
        \ commands to enable enhanced observability and tracing by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4109](https://redirect.github.com/gruntwork-io/terragrunt/pull/4109)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.77.4...v0.77.5\n\
        \n### [`v0.77.4`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.77.4)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.77.3...v0.77.4)\n\
        \n#### \U0001F41B Bug fixes\n\n##### Newlines reduced in Error Logging for\
        \ Configuration Errors\n\nLogging for configuration errors has been compacted\
        \ to reduce noise, and make errors easier to read.\n\n```\n\n### Before\n\
        14:09:25.892 ERROR  Error: Error in function call\n\n14:09:25.892 ERROR  \
        \  on terragrunt.hcl line 3, in locals:\n\n14:09:25.892 ERROR     3:     \
        \  requires_auth = run_cmd(\"exit\", \"1\") // intentional error\n\n14:09:25.892\
        \ ERROR\n\n14:09:25.892 ERROR  Call to function \"run_cmd\" failed: Failed\
        \ to execute \"exit 1\" in .\n\nexec: \"exit\": executable file not found\
        \ in $PATH.\n\n```\n\n    ### After\n    15:19:50.937 ERROR  Error: Error\
        \ in function call\n    15:19:50.937 ERROR    on terragrunt.hcl line 3, in\
        \ locals:\n    15:19:50.937 ERROR  Error: Error in function call\n    15:19:50.937\
        \ ERROR    on terragrunt.hcl line 3, in locals:\n    15:19:50.937 ERROR  \
        \   3:       requires_auth = run_cmd(\"exit\", \"1\") // intentional error\n\
        \    15:19:50.937 ERROR     3:       fail   = run_cmd(\"exit\", \"1\") //\
        \ intentional error\n    15:19:50.937 ERROR  Call to function \"run_cmd\"\
        \ failed: Failed to execute \"exit 1\" in .\n    15:19:50.937 ERROR  exec:\
        \ \"exit\": executable file not found in $PATH.\n\n##### Improved Cycle Detection\
        \ Logic for `stack generate`\n\nOn the default filesystem for macOS, path\
        \ length was likely to result in an error before internal cycle detection\
        \ logic, so cycle detection was updated to leverage a maximum path length\
        \ of 1024 characters as an earlier exit for all operating systems.\n\n#####\
        \ Excessive warning for bootstrap requirement resolved\n\nInternal logic for\
        \ determination that backends required bootstrapping was adjusted to no longer\
        \ leverage the value of the OpenTofu state file.\n\nWhile cheaper than making\
        \ a network request to assess the current state of backend resources, it also\
        \ resulted in false negatives, which triggered excessive backend bootstrap\
        \ warnings.\n\n#### What's Changed\n\n-   fix: New lines in TF diagnostic\
        \ log by [@&#8203;levkohimins](https://redirect.github.com/levkohimins) in\
        \ [https://github.com/gruntwork-io/terragrunt/pull/4108](https://redirect.github.com/gruntwork-io/terragrunt/pull/4108)\n\
        -   fix: Stack cycles detection improvements by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4106](https://redirect.github.com/gruntwork-io/terragrunt/pull/4106)\n\
        -   fix: Fixing excessive warning for bootstrap by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4107](https://redirect.github.com/gruntwork-io/terragrunt/pull/4107)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.77.3...v0.77.4\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:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIzOC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
      change_url: https://github.com/osism/testbed/pull/2654
      child_jobs: []
      commit_id: b9a7215031e45f3c38a9102013ef89ccbdaf66ab
      event_id: 8e8df710-163d-11f0-918e-0c7833f8f924
      executor:
        hostname: 7d211f194f6a
        inventory_file: /var/lib/zuul/builds/10ab4d0027ff4c1f8b4a2e0764fd5b23/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/10ab4d0027ff4c1f8b4a2e0764fd5b23/work/logs
        result_data_file: /var/lib/zuul/builds/10ab4d0027ff4c1f8b4a2e0764fd5b23/work/results.json
        src_root: /var/lib/zuul/builds/10ab4d0027ff4c1f8b4a2e0764fd5b23/work/src
        work_root: /var/lib/zuul/builds/10ab4d0027ff4c1f8b4a2e0764fd5b23/work
      items:
      - branch: main
        change: '2654'
        change_url: https://github.com/osism/testbed/pull/2654
        patchset: b9a7215031e45f3c38a9102013ef89ccbdaf66ab
        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: Y2hvcmUoZGVwcyk6IHVwZGF0ZSBkZXBlbmRlbmN5IGdydW50d29yay1pby90ZXJyYWdydW50IHRvIHYwLjc3LjEyCgpUaGlzIFBSIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgdXBkYXRlczoKCnwgUGFja2FnZSB8IFVwZGF0ZSB8IENoYW5nZSB8CnwtLS18LS0tfC0tLXwKfCBbZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudCkgfCBwYXRjaCB8IGB2MC43Ny4zYCAtPiBgdjAuNzcuMTJgIHwKCi0tLQoKIyMjIFJlbGVhc2UgTm90ZXMKCjxkZXRhaWxzPgo8c3VtbWFyeT5ncnVudHdvcmstaW8vdGVycmFncnVudCAoZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQpPC9zdW1tYXJ5PgoKIyMjIFtgdjAuNzcuMTJgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjc3LjEyKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ny4xMS4uLnYwLjc3LjEyKQoKIyMjIyDinKggTmV3IEZlYXR1cmVzCgpJbnRyb2R1Y2VkIGBub192YWxpZGF0aW9uYCBhdHRyaWJ1dGUgZm9yIGBzdGFja2AgYW5kIGB1bml0YCwgYWxsb3dpbmcgdXNlcnMgdG8gYnlwYXNzIFRlcnJhZ3J1bnQncyB2YWxpZGF0aW9uIGNoZWNrcyB3aGVuIGRlcGxveWluZyBpbmZyYXN0cnVjdHVyZS4gVGhpcyBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGluIHNjZW5hcmlvcyB3aGVyZSB5b3UgbmVlZCB0byBkZXBsb3kgaW5mcmFzdHJ1Y3R1cmUgdGhhdCBkb2Vzbid0IHN0cmljdGx5IGFkaGVyZSB0byBUZXJyYWdydW50J3MgdmFsaWRhdGlvbiBydWxlcywgc3VjaCBhcyBkdXJpbmcgZW1lcmdlbmN5IGRlcGxveW1lbnRzIG9yIHdoZW4gd29ya2luZyB3aXRoIGxlZ2FjeSBpbmZyYXN0cnVjdHVyZSBwYXR0ZXJucy4KCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gICBkb2NzOiBhZGRlZCBtb3JlIGRvY3MgZm9yIHN0YWNrcyBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQxNDRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQxNDQpCi0gICBmZWF0OiBhZGRlZCBzdXBwb3J0IGZvciBgbm9fdmFsaWRhdGlvbmAgYXR0cmlidXRlIGZvciBgc3RhY2tgIGFuZCBgdW5pdGAgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQxNDldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQxNDkpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc3LjExLi4udjAuNzcuMTIKCiMjIyBbYHYwLjc3LjExYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43Ny4xMSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzcuMTAuLi52MC43Ny4xMSkKCiMjIyMg4pyoIE5ldyBGZWF0dXJlcwoKIyMjIyMgSW50cm9kdWN0aW9uIG9mIHRoZSBgaW5mbyBwcmludGAgY29tbWFuZAoKQXMgcGFydCBvZiB0aGUgW0NMSSBSZWRlc2lnbl0oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL3JlZmVyZW5jZS9leHBlcmltZW50cy8jY2xpLXJlZGVzaWduKSBleHBlcmltZW50LCB0aGUgW2BpbmZvIHByaW50YF0oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL3JlZmVyZW5jZS9jbGktb3B0aW9ucy8jcHJpbnQtY29tbWFuZCkgY29tbWFuZCBoYXMgYmVlbiBpbnRyb2R1Y2VkLgoKIVtoZWxwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdXNlci1hdHRhY2htZW50cy9hc3NldHMvMmVhYzQ2NDUtOTNjMi00N2RkLThkYzMtNzNjNDQ0MmJmMWM4KQoKIVtvdXRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS91c2VyLWF0dGFjaG1lbnRzL2Fzc2V0cy83MDA1YzVkYi0xNWUxLTRlZmUtYjVhOC0zNDlhMTc5ZjYwMzMpCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgZmVhdDogSW50cm9kdWNlZCB0aGUgYGluZm8gcHJpbnRgIGNvbW1hbmQgdG8gb3V0cHV0IFRlcnJhZ3J1bnQgY29udGV4dCBhcyBhIHN0cnVjdHVyZWQgSlNPTiBvYmplY3QgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQxMjJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQxMjIpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc3LjEwLi4udjAuNzcuMTEKCiMjIyBbYHYwLjc3LjEwYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43Ny4xMCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzcuOS4uLnYwLjc3LjEwKQoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSAgIGZpeDogU3VwcHJlc3Npbmcgd2FybmluZyBmb3IgY2F0YWxvZyB3aGVuIGRldGVybWluaW5nIGRlZmF1bHQgZmlsZSBuYW1lIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDEzNF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDEzNCkKLSAgIGZpeDogUmVtb3ZlIHdhcm5pbmcgbWVzc2FnZSBmb3IgdW5pbXBsZW1lbnRlZCBiYWNrZW5kcyBieSBbQCYjODIwMztsZXZrb2hpbWluc10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2xldmtvaGltaW5zKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDEzOF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDEzOCkKLSAgIGZpeDogRml4aW5nIG9wdGlvbmFsIGRlZmF1bHQgdGVtcGxhdGUgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTQxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTQxKQotICAgY2hvcmU6IHN0YWNrIGNvZGUgaW1wcm92ZW1lbnRzIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTM2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTM2KQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ny45Li4udjAuNzcuMTAKCiMjIyBbYHYwLjc3LjlgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjc3LjkpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc3LjguLi52MC43Ny45KQoKIyMjIyDwn5CbIEJ1ZyBmaXhlcwoKIyMjIyMgRmV0Y2hpbmcgT3V0cHV0cyBmcm9tIE5lc3RlZCBTdGFja3MKClJlc29sdmVkIGFuIGlzc3VlIHRoYXQgcHJldmVudGVkIHRoZSBjb3JyZWN0IHJldHJpZXZhbCBvZiBvdXRwdXRzIGZyb20gbmVzdGVkIHN0YWNrcy4KCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gICBmaXg6IGNvcnJlY3RlZCB0aGUgbG9naWMgZm9yIGZldGNoaW5nIG91dHB1dHMgZnJvbSBuZXN0ZWQgc3RhY2tzIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTI2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTI2KQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ny44Li4udjAuNzcuOQoKIyMjIFtgdjAuNzcuOGBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuNzcuOCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzcuNy4uLnYwLjc3LjgpCgojIyMjIPCfk5YgRG9jdW1lbnRhdGlvbiBVcGRhdGVzCgpBIG5ldyBbcGVyZm9ybWFuY2UgZ3VpZGVdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy90cm91Ymxlc2hvb3RpbmcvcGVyZm9ybWFuY2UvKSBoYXMgYmVlbiBhZGRlZCB0byBUZXJyYWdydW50IGRvY3VtZW50YXRpb24gdG8gb2ZmZXIgZ3VpZGFuY2Ugb24gaG93IHBlcmZvcm1hbmNlIGNhbiBiZSBpbXByb3ZlZCB3aGVuIHVzaW5nIFRlcnJhZ3J1bnQgb3IgY29udHJpYnV0aW5nIHRvIHRoZSBUZXJyYWdydW50IGNvZGViYXNlLgoKVGhpcyBkb2N1bWVudGF0aW9uIHdpbGwgZXZvbHZlIG92ZXIgdGltZSwgYXMgbW9yZSBvcHRpb25hbCBvcHRpbWl6YXRpb25zIGJlY29tZSBhdmFpbGFibGUsIG9yIGFyZSBubyBsb25nZXIgbmVjZXNzYXJ5LCBhcyB0aGV5IGJlY29tZSBkZWZhdWx0IGJlaGF2aW9yLgoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSAgIGZlYXQ6IEFkZCBwZXJmb3JtYW5jZSBndWlkZSBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQxMjBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQxMjApCi0gICBidWlsZChkZXBzKTogYnVtcCBydWJ5L3NldHVwLXJ1YnkgZnJvbSAxLjIyMS4wIHRvIDEuMjI5LjAgYnkgW0AmIzgyMDM7ZGVwZW5kYWJvdF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlcGVuZGFib3QpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTAwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTAwKQotICAgZml4OiBBZGRyZXNzaW5nIGNvbW1hcyBpbiBleHRlcm5hbCBJRHMgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTI4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTI4KQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ny43Li4udjAuNzcuOAoKIyMjIFtgdjAuNzcuN2BdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuNzcuNykKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzcuNi4uLnYwLjc3LjcpCgojIyMjIOKcqCBOZXcgRmVhdHVyZXMKClVzZXJzIGNhbiBub3cgY29uZmlndXJlIGEgY3VzdG9tIGRlZmF1bHQgdGVtcGxhdGUgZm9yIGBzY2FmZm9sZGAgYW5kIGBjYXRhbG9nYCBjb21tYW5kcyBpbiB0aGVpciBgY2F0YWxvZ2AgY29uZmlndXJhdGlvbiBibG9ja3MgbGlrZSBzbzoKCmBgYGhjbApjYXRhbG9nIHsKICBkZWZhdWx0X3RlbXBsYXRlID0gImdpdEBnaXRodWIuY29tL2FjbWUvZXhhbXBsZS5naXQvL3BhdGgvdG8vdGVtcGxhdGUiCn0KYGBgCgpGb3IgbW9yZSBpbmZvcm1hdGlvbiwgcmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBpbiB0aGUgW2NhdGFsb2cgZmVhdHVyZV0oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL2ZlYXR1cmVzL2NhdGFsb2cvI2N1c3RvbS10ZW1wbGF0ZXMtZm9yLXNjYWZmb2xkaW5nKS4KClNwZWNpYWwgdGhhbmtzIHRvIFtAJiM4MjAzO3RnZWlqZ10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3RnZWlqZykgZm9yIGNvbnRyaWJ1dGluZyB0aGlzIGZlYXR1cmUhCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgZmVhdDogQWRkaW5nIGN1c3RvbSBkZWZhdWx0IHRlbXBsYXRlIFsjJiM4MjAzOzM2NThdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9pc3N1ZXMvMzY1OCkgYnkgW0AmIzgyMDM7dGdlaWpnXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vdGdlaWpnKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAzNV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDAzNSkKLSAgIGZpeDogVXBkYXRpbmcgZG9jcyBhZnRlciBbIyYjODIwMzs0MDM1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvaXNzdWVzLzQwMzUpIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDExN10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDExNykKLSAgIGNob3JlOiBzdGFja3MgZG9jdW1lbnRhdGlvbiBpbXByb3ZlbWVudHMgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQxMTRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQxMTQpCgojIyMjIE5ldyBDb250cmlidXRvcnMKCi0gICBbQCYjODIwMzt0Z2VpamddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS90Z2VpamcpIG1hZGUgdGhlaXIgZmlyc3QgY29udHJpYnV0aW9uIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDM1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDM1KQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ny42Li4udjAuNzcuNwoKIyMjIFtgdjAuNzcuNmBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuNzcuNikKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzcuNS4uLnYwLjc3LjYpCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgZml4OiBDb3JyZWN0bHkgaWdub3JlIGxvY2sgdGFibGUgZW5jcnlwdGlvbiBzZXR0aW5nIHRvIHByZXZlbnQgdW5pbnRlbmRlZCBjb25maWd1cmF0aW9uIG92ZXJyaWRlcyBieSBbQCYjODIwMztsZXZrb2hpbWluc10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2xldmtvaGltaW5zKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDExMl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDExMikKLSAgIGZpeDogSW50cm9kdWNlZCBzdHJpY3RlciBjb25zdHJhaW50cyBmb3IgZGV0ZWN0aW5nIHN0YWNrIGNvbmZpZ3VyYXRpb24gZmlsZXMgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQxMTNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQxMTMpCi0gICBmZWF0OiBFbmFibGVkIHBhcnNpbmcgb2Ygc3RhY2sgY29uZmlndXJhdGlvbiBkaXJlY3RseSBmcm9tIGEgc3RyaW5nIGlucHV0IGZvciBlbmhhbmNlZCBpbnRlZ3JhdGlvbiB3aXRoIDNyZCBwYXJ0eSBjb2RlIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTEwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTEwKQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ny41Li4udjAuNzcuNgoKIyMjIFtgdjAuNzcuNWBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuNzcuNSkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzcuNC4uLnYwLjc3LjUpCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgZmVhdDogYWRkZWQgc3VwcG9ydCBmb3IgT3BlblRlbGVtZXRyeSBpbiBgc3RhY2tgIGNvbW1hbmRzIHRvIGVuYWJsZSBlbmhhbmNlZCBvYnNlcnZhYmlsaXR5IGFuZCB0cmFjaW5nIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTA5XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTA5KQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ny40Li4udjAuNzcuNQoKIyMjIFtgdjAuNzcuNGBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9yZWxlYXNlcy90YWcvdjAuNzcuNCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzcuMy4uLnYwLjc3LjQpCgojIyMjIPCfkJsgQnVnIGZpeGVzCgojIyMjIyBOZXdsaW5lcyByZWR1Y2VkIGluIEVycm9yIExvZ2dpbmcgZm9yIENvbmZpZ3VyYXRpb24gRXJyb3JzCgpMb2dnaW5nIGZvciBjb25maWd1cmF0aW9uIGVycm9ycyBoYXMgYmVlbiBjb21wYWN0ZWQgdG8gcmVkdWNlIG5vaXNlLCBhbmQgbWFrZSBlcnJvcnMgZWFzaWVyIHRvIHJlYWQuCgpgYGAKCiMjIyBCZWZvcmUKMTQ6MDk6MjUuODkyIEVSUk9SICBFcnJvcjogRXJyb3IgaW4gZnVuY3Rpb24gY2FsbAoKMTQ6MDk6MjUuODkyIEVSUk9SICAgIG9uIHRlcnJhZ3J1bnQuaGNsIGxpbmUgMywgaW4gbG9jYWxzOgoKMTQ6MDk6MjUuODkyIEVSUk9SICAgICAzOiAgICAgICByZXF1aXJlc19hdXRoID0gcnVuX2NtZCgiZXhpdCIsICIxIikgLy8gaW50ZW50aW9uYWwgZXJyb3IKCjE0OjA5OjI1Ljg5MiBFUlJPUgoKMTQ6MDk6MjUuODkyIEVSUk9SICBDYWxsIHRvIGZ1bmN0aW9uICJydW5fY21kIiBmYWlsZWQ6IEZhaWxlZCB0byBleGVjdXRlICJleGl0IDEiIGluIC4KCmV4ZWM6ICJleGl0IjogZXhlY3V0YWJsZSBmaWxlIG5vdCBmb3VuZCBpbiAkUEFUSC4KCmBgYAoKICAgICMjIyBBZnRlcgogICAgMTU6MTk6NTAuOTM3IEVSUk9SICBFcnJvcjogRXJyb3IgaW4gZnVuY3Rpb24gY2FsbAogICAgMTU6MTk6NTAuOTM3IEVSUk9SICAgIG9uIHRlcnJhZ3J1bnQuaGNsIGxpbmUgMywgaW4gbG9jYWxzOgogICAgMTU6MTk6NTAuOTM3IEVSUk9SICBFcnJvcjogRXJyb3IgaW4gZnVuY3Rpb24gY2FsbAogICAgMTU6MTk6NTAuOTM3IEVSUk9SICAgIG9uIHRlcnJhZ3J1bnQuaGNsIGxpbmUgMywgaW4gbG9jYWxzOgogICAgMTU6MTk6NTAuOTM3IEVSUk9SICAgICAzOiAgICAgICByZXF1aXJlc19hdXRoID0gcnVuX2NtZCgiZXhpdCIsICIxIikgLy8gaW50ZW50aW9uYWwgZXJyb3IKICAgIDE1OjE5OjUwLjkzNyBFUlJPUiAgICAgMzogICAgICAgZmFpbCAgID0gcnVuX2NtZCgiZXhpdCIsICIxIikgLy8gaW50ZW50aW9uYWwgZXJyb3IKICAgIDE1OjE5OjUwLjkzNyBFUlJPUiAgQ2FsbCB0byBmdW5jdGlvbiAicnVuX2NtZCIgZmFpbGVkOiBGYWlsZWQgdG8gZXhlY3V0ZSAiZXhpdCAxIiBpbiAuCiAgICAxNToxOTo1MC45MzcgRVJST1IgIGV4ZWM6ICJleGl0IjogZXhlY3V0YWJsZSBmaWxlIG5vdCBmb3VuZCBpbiAkUEFUSC4KCiMjIyMjIEltcHJvdmVkIEN5Y2xlIERldGVjdGlvbiBMb2dpYyBmb3IgYHN0YWNrIGdlbmVyYXRlYAoKT24gdGhlIGRlZmF1bHQgZmlsZXN5c3RlbSBmb3IgbWFjT1MsIHBhdGggbGVuZ3RoIHdhcyBsaWtlbHkgdG8gcmVzdWx0IGluIGFuIGVycm9yIGJlZm9yZSBpbnRlcm5hbCBjeWNsZSBkZXRlY3Rpb24gbG9naWMsIHNvIGN5Y2xlIGRldGVjdGlvbiB3YXMgdXBkYXRlZCB0byBsZXZlcmFnZSBhIG1heGltdW0gcGF0aCBsZW5ndGggb2YgMTAyNCBjaGFyYWN0ZXJzIGFzIGFuIGVhcmxpZXIgZXhpdCBmb3IgYWxsIG9wZXJhdGluZyBzeXN0ZW1zLgoKIyMjIyMgRXhjZXNzaXZlIHdhcm5pbmcgZm9yIGJvb3RzdHJhcCByZXF1aXJlbWVudCByZXNvbHZlZAoKSW50ZXJuYWwgbG9naWMgZm9yIGRldGVybWluYXRpb24gdGhhdCBiYWNrZW5kcyByZXF1aXJlZCBib290c3RyYXBwaW5nIHdhcyBhZGp1c3RlZCB0byBubyBsb25nZXIgbGV2ZXJhZ2UgdGhlIHZhbHVlIG9mIHRoZSBPcGVuVG9mdSBzdGF0ZSBmaWxlLgoKV2hpbGUgY2hlYXBlciB0aGFuIG1ha2luZyBhIG5ldHdvcmsgcmVxdWVzdCB0byBhc3Nlc3MgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYmFja2VuZCByZXNvdXJjZXMsIGl0IGFsc28gcmVzdWx0ZWQgaW4gZmFsc2UgbmVnYXRpdmVzLCB3aGljaCB0cmlnZ2VyZWQgZXhjZXNzaXZlIGJhY2tlbmQgYm9vdHN0cmFwIHdhcm5pbmdzLgoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSAgIGZpeDogTmV3IGxpbmVzIGluIFRGIGRpYWdub3N0aWMgbG9nIGJ5IFtAJiM4MjAzO2xldmtvaGltaW5zXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vbGV2a29oaW1pbnMpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTA4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTA4KQotICAgZml4OiBTdGFjayBjeWNsZXMgZGV0ZWN0aW9uIGltcHJvdmVtZW50cyBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDEwNl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDEwNikKLSAgIGZpeDogRml4aW5nIGV4Y2Vzc2l2ZSB3YXJuaW5nIGZvciBib290c3RyYXAgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTA3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MTA3KQoKKipGdWxsIENoYW5nZWxvZyoqOiBodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ny4zLi4udjAuNzcuNAoKPC9kZXRhaWxzPgoKLS0tCgojIyMgQ29uZmlndXJhdGlvbgoK8J+ThSAqKlNjaGVkdWxlKio6IEJyYW5jaCBjcmVhdGlvbiAtIEF0IGFueSB0aW1lIChubyBzY2hlZHVsZSBkZWZpbmVkKSwgQXV0b21lcmdlIC0gQXQgYW55IHRpbWUgKG5vIHNjaGVkdWxlIGRlZmluZWQpLgoK8J+apiAqKkF1dG9tZXJnZSoqOiBEaXNhYmxlZCBieSBjb25maWcuIFBsZWFzZSBtZXJnZSB0aGlzIG1hbnVhbGx5IG9uY2UgeW91IGFyZSBzYXRpc2ZpZWQuCgrimbsgKipSZWJhc2luZyoqOiBXaGVuZXZlciBQUiBiZWNvbWVzIGNvbmZsaWN0ZWQsIG9yIHlvdSB0aWNrIHRoZSByZWJhc2UvcmV0cnkgY2hlY2tib3guCgrwn5SVICoqSWdub3JlKio6IENsb3NlIHRoaXMgUFIgYW5kIHlvdSB3b24ndCBiZSByZW1pbmRlZCBhYm91dCB0aGlzIHVwZGF0ZSBhZ2Fpbi4KCi0tLQoKIC0gWyBdIDwhLS0gcmViYXNlLWNoZWNrIC0tPklmIHlvdSB3YW50IHRvIHJlYmFzZS9yZXRyeSB0aGlzIFBSLCBjaGVjayB0aGlzIGJveAoKLS0tCgpUaGlzIFBSIHdhcyBnZW5lcmF0ZWQgYnkgW01lbmQgUmVub3ZhdGVdKGh0dHBzOi8vbWVuZC5pby9yZW5vdmF0ZS8pLiBWaWV3IHRoZSBbcmVwb3NpdG9yeSBqb2IgbG9nXShodHRwczovL2RldmVsb3Blci5tZW5kLmlvL2dpdGh1Yi9vc2lzbS90ZXN0YmVkKS4KPCEtLXJlbm92YXRlLWRlYnVnOmV5SmpjbVZoZEdWa1NXNVdaWElpT2lJek9TNHlNRGN1TVNJc0luVndaR0YwWldSSmJsWmxjaUk2SWpNNUxqSXpPQzR3SWl3aWRHRnlaMlYwUW5KaGJtTm9Jam9pYldGcGJpSXNJbXhoWW1Wc2N5STZXeUp5Wlc1dmRtRjBaU0pkZlE9PS0tPgo=
      patchset: b9a7215031e45f3c38a9102013ef89ccbdaf66ab
      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: 35410214c5e2732961503cd3d67869637ac683e2
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: c212ef9fff456ceede260bdfaaf903f6e2d2313a
          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: 35410214c5e2732961503cd3d67869637ac683e2
        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: 312e59d5d44ec73dae967baa51f1dd9eac4d4f42
          name: osism/testbed
          required: false
          short_name: testbed
          src_dir: src/github.com/osism/testbed
      ref: refs/pull/2654/head
      resources: {}
      tenant: osism
      timeout: 1800
      voting: true
