Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
5a1386c
feat: add standalone RHDH Helm chart without upstream subchart depend…
rm3l Jun 17, 2026
2390d6b
deprecate backstage chart in favor of the new standalone rhdh chart
rm3l Jun 17, 2026
2166c42
run pre-commit hooks
rm3l Jun 17, 2026
0535a5f
Merge remote-tracking branch 'upstream/main' into RHDHPLAN-1058--impr…
rm3l Jun 17, 2026
6863fd4
clarify that backstage chart fixes target supported release-1.y branches
rm3l Jun 17, 2026
47ed937
update Chart.yaml with data from downstream chart
rm3l Jun 17, 2026
c45edb5
add CI values files for the rhdh chart
rm3l Jun 17, 2026
8cd6fb2
bump backstage chart version
rm3l Jun 17, 2026
62a2c40
fix issues reported by SonarQube
rm3l Jun 17, 2026
4f67c4d
support bitnami global fields in the rhdh chart
rm3l Jun 17, 2026
5569028
run pre-commit hooks
rm3l Jun 17, 2026
0c16624
upgrade bitnami postgresql dependency to 18.7.5
rm3l Jun 17, 2026
56e07d8
add digest field to all image blocks and document catalogIndex examples
rm3l Jun 17, 2026
c1b1d90
Merge branch 'main' into RHDHPLAN-1058--improve-helm-chart-configurat…
rm3l Jun 18, 2026
2b0e840
Merge remote-tracking branch 'upstream/main' into RHDHPLAN-1058--impr…
rm3l Jun 18, 2026
76ba3c5
fix(ci): skip ct upgrade test for new charts not yet on the target br…
rm3l Jun 18, 2026
b9e0e1e
fix(ci): set podSecurityContext for the rhdh chart on KinD
rm3l Jun 18, 2026
0ca7e13
feat(rhdh): add default appConfig with base URLs, database, and auth
rm3l Jun 18, 2026
4d8fbba
Merge branch 'main' into RHDHPLAN-1058--improve-helm-chart-configurat…
rm3l Jun 19, 2026
3179076
run pre-commit hooks
rm3l Jun 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 27 additions & 7 deletions .github/actions/test-charts/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,18 +52,18 @@ runs:
run: |
if [[ -n "$INPUT_CHART" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
if [[ "$INPUT_CHART" == "charts/backstage" ]]; then
echo "backstageChartChanged=true" >> "$GITHUB_OUTPUT"
if [[ "$INPUT_CHART" == "charts/backstage" || "$INPUT_CHART" == "charts/rhdh" ]]; then
echo "orchestratorCrdsNeeded=true" >> "$GITHUB_OUTPUT"
fi
elif [[ "$INPUT_ALL_CHARTS" == "true" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
echo "backstageChartChanged=true" >> "$GITHUB_OUTPUT"
echo "orchestratorCrdsNeeded=true" >> "$GITHUB_OUTPUT"
else
listChanged=$(ct list-changed --target-branch "$INPUT_TARGET_BRANCH")
if [[ -n "$listChanged" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
if grep 'charts/backstage' <<< "$listChanged"; then
echo "backstageChartChanged=true" >> "$GITHUB_OUTPUT"
if grep -E 'charts/backstage|charts/rhdh' <<< "$listChanged"; then
echo "orchestratorCrdsNeeded=true" >> "$GITHUB_OUTPUT"
fi
fi
fi
Expand Down Expand Up @@ -158,7 +158,7 @@ runs:
# For the simple testing that we are doing here on a vanilla K8s cluster, we only need both the Knative and SonataFlow CRDs.
# TODO(rm3l): Update this when/if there is an upstream counterpart installable via OLM.
- name: Install Knative and SonataFlow CRDs
if: steps.list-changed.outputs.backstageChartChanged == 'true'
if: steps.list-changed.outputs.orchestratorCrdsNeeded == 'true'
shell: bash
env:
SONATAFLOW_OPERATOR_VERSION: "10.1.0"
Expand Down Expand Up @@ -203,6 +203,16 @@ runs:
"--set upstream.backstage.podSecurityContext.runAsGroup=1001"
"--set upstream.backstage.podSecurityContext.fsGroup=1001"
)
elif [[ "$INPUT_CHART" == "charts/rhdh" ]]; then
# On vanilla K8s (KinD), there is no SCC to assign a common UID.
# Set fsGroup so shared volumes (e.g. RAG data) are group-writable
# across init containers and sidecars that may run as different UIDs.
EXTRA_ARGS+=(
"--set route.enabled=false"
"--set podSecurityContext.runAsUser=1001"
"--set podSecurityContext.runAsGroup=1001"
"--set podSecurityContext.fsGroup=1001"
)
fi
if [[ -n "$INPUT_EXTRA_HELM_ARGS" ]]; then
IFS=' ' read -ra ADDITIONAL_ARGS <<< "$INPUT_EXTRA_HELM_ARGS"
Expand All @@ -211,10 +221,20 @@ runs:
CT_ARGS=(
--debug
--config ct-install.yaml
--upgrade
--target-branch "$INPUT_TARGET_BRANCH"
--helm-extra-set-args="${EXTRA_ARGS[*]}"
)
# Only test upgrades from the previous revision if the chart exists on the target branch.
# New charts (not yet on the target branch) would fail dependency build on the previous revision.
if [[ -n "$INPUT_CHART" ]]; then
if git show "origin/$INPUT_TARGET_BRANCH:${INPUT_CHART}/Chart.yaml" &>/dev/null; then
CT_ARGS+=(--upgrade)
else
echo "Chart $INPUT_CHART is new (not on $INPUT_TARGET_BRANCH); skipping upgrade test."
fi
else
CT_ARGS+=(--upgrade)
fi
if [[ -n "$INPUT_CHART" ]]; then
CT_ARGS+=(--charts "$INPUT_CHART")
elif [[ "$INPUT_ALL_CHARTS" == "true" ]]; then
Expand Down
105 changes: 0 additions & 105 deletions .github/workflows/sync-upstream-backstage.yaml

This file was deleted.

2 changes: 1 addition & 1 deletion charts/backstage/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,4 @@ sources: []
# Versions are expected to follow Semantic Versioning (https://semver.org/)
# Note that when this chart is published to https://github.com/openshift-helm-charts/charts
# it will follow the RHDH versioning 1.y.z
version: 6.1.1
version: 6.1.2
6 changes: 4 additions & 2 deletions charts/backstage/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

# RHDH Backstage Helm Chart for OpenShift

![Version: 6.1.1](https://img.shields.io/badge/Version-6.1.1-informational?style=flat-square)
![Version: 6.1.2](https://img.shields.io/badge/Version-6.1.2-informational?style=flat-square)
![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square)

A Helm chart for deploying Red Hat Developer Hub, which is a Red Hat supported version of Backstage.
Expand All @@ -10,6 +10,8 @@ The telemetry data collection feature is enabled by default. Red Hat Developer H

**Homepage:** <https://red.ht/rhdh>

> **DEPRECATED:** Starting with RHDH 2.y, this chart is deprecated in favor of the new [`redhat-developer-hub`](../rhdh/) chart, which owns all Kubernetes templates directly and no longer depends on the upstream Backstage subchart. See the [upgrade guide](../rhdh/README.md#upgrading-from-the-backstage-chart-rhdh-1y) for migration instructions. This chart will continue to receive critical fixes on the supported `release-1.y` branches but no new features.

## Productized RHDH

This repository now provides the productized RHDH chart.
Expand All @@ -29,7 +31,7 @@ For the **Generally Available** version of this chart, see:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add redhat-developer https://redhat-developer.github.io/rhdh-chart

helm install my-backstage redhat-developer/backstage --version 6.1.1
helm install my-backstage redhat-developer/backstage --version 6.1.2
```

## Introduction
Expand Down
4 changes: 3 additions & 1 deletion charts/backstage/README.md.gotmpl
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@

{{ template "chart.homepageLine" . }}

## Productized RHDH
> **DEPRECATED:** Starting with RHDH 2.y, this chart is deprecated in favor of the new [`redhat-developer-hub`](../rhdh/) chart, which owns all Kubernetes templates directly and no longer depends on the upstream Backstage subchart. See the [upgrade guide](../rhdh/README.md#upgrading-from-the-backstage-chart-rhdh-1y) for migration instructions. This chart will continue to receive critical fixes on the supported `release-1.y` branches but no new features.

## Productized RHDH

This repository now provides the productized RHDH chart.
For the **Generally Available** version of this chart, see:
Expand Down
23 changes: 23 additions & 0 deletions charts/rhdh/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
9 changes: 9 additions & 0 deletions charts/rhdh/Chart.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
dependencies:
- name: common
repository: https://charts.bitnami.com/bitnami
version: 2.40.0
- name: postgresql
repository: oci://registry-1.docker.io/bitnamicharts
version: 18.7.5
digest: sha256:2579d07d98ba49cf098f3f738e83018d7f4b526d7f269620b2dbfcd8a8ebcdc4
generated: "2026-06-17T15:14:40.669176034+02:00"
52 changes: 52 additions & 0 deletions charts/rhdh/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
apiVersion: v2
name: redhat-developer-hub
type: application
version: 1.0.0
appVersion: 2.1.0
annotations:
artifacthub.io/category: integration-delivery
artifacthub.io/license: Apache-2.0
artifacthub.io/links: |
- name: JIRA
url: https://redhat.atlassian.net/browse/RHDHBUGS
- name: Chart Source
url: https://github.com/redhat-developer/rhdh-chart
- name: Default Image Source
url: https://github.com/redhat-developer/rhdh
charts.openshift.io/name: Red Hat Developer Hub
charts.openshift.io/provider: Red Hat
charts.openshift.io/archs: x86_64
charts.openshift.io/providerType: community
charts.openshift.io/supportURL: https://access.redhat.com/support
charts.openshift.io/supportedOpenShiftVersions: '>=4.18'
description: |
A Helm chart for deploying Red Hat Developer Hub, which is a Red Hat supported version of Backstage.

The telemetry data collection feature is enabled by default. Red Hat Developer Hub sends telemetry data to Red Hat by using the `backstage-plugin-analytics-provider-segment` plugin. To disable this and to learn what data is being collected, see https://docs.redhat.com/en/documentation/red_hat_developer_hub/1.10/html-single/telemetry_data_collection_and_analysis/index
dependencies:
- name: common
repository: https://charts.bitnami.com/bitnami
tags:
- bitnami-common
version: "2.40.0"
- name: postgresql
repository: oci://registry-1.docker.io/bitnamicharts
version: "18.7.5"
condition: postgresql.enabled
keywords:
- backstage
- idp
- developer-hub
- redhat-developer-hub
- redhat
kubeVersion: ">= 1.31.0-0"
maintainers:
- name: Red Hat
url: https://redhat.com
home: https://developers.redhat.com/products/rhdh
sources:
- https://github.com/redhat-developer/rhdh-chart/tree/main/charts/rhdh
- https://github.com/redhat-developer/rhdh
- https://github.com/redhat-developer/rhdh-plugins
- https://github.com/redhat-developer/rhdh-plugin-export-overlays
icon: data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgd2lkdGg9IjE5MS44OCIKICAgaGVpZ2h0PSIxOTEuODgiCiAgIHZpZXdCb3g9IjAgMCAxOTEuODggMTkxLjg4IgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmcyNCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8ZGVmcwogICAgIGlkPSJkZWZzMjgiIC8+CiAgPGcKICAgICBpZD0idXVpZC03OTAxZjg3OC1jZTAwLTQ0MWYtYWMyNi1kZGQzNjU0ZDRmNzkiCiAgICAgdHJhbnNmb3JtPSJtYXRyaXgoNS4zMywwLDAsNS4zMywtNS4zMjk5OTc2LC01LjMyOTk5NzYpIj4KICAgIDxyZWN0CiAgICAgICB4PSIxIgogICAgICAgeT0iMSIKICAgICAgIHdpZHRoPSIzNiIKICAgICAgIGhlaWdodD0iMzYiCiAgICAgICByeD0iOSIKICAgICAgIHJ5PSI5IgogICAgICAgc3Ryb2tlLXdpZHRoPSIwIgogICAgICAgaWQ9InJlY3QyIiAvPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMjgsMi4yNSBjIDQuMjczMzYsMCA3Ljc1LDMuNDc2NjQgNy43NSw3Ljc1IHYgMTggYyAwLDQuMjczMzYgLTMuNDc2NjQsNy43NSAtNy43NSw3Ljc1IEggMTAgQyA1LjcyNjY0LDM1Ljc1IDIuMjUsMzIuMjczMzYgMi4yNSwyOCBWIDEwIEMgMi4yNSw1LjcyNjY0IDUuNzI2NjQsMi4yNSAxMCwyLjI1IEggMjggTSAyOCwxIEggMTAgQyA1LjAyOTQ0LDEgMSw1LjAyOTQzIDEsMTAgdiAxOCBjIDAsNC45NzA1NyA0LjAyOTQ0LDkgOSw5IGggMTggYyA0Ljk3MDU2LDAgOSwtNC4wMjk0MyA5LC05IFYgMTAgQyAzNyw1LjAyOTQzIDMyLjk3MDU2LDEgMjgsMSBaIgogICAgICAgZmlsbD0iIzRkNGQ0ZCIKICAgICAgIHN0cm9rZS13aWR0aD0iMCIKICAgICAgIGlkPSJwYXRoNCIgLz4KICA8L2c+CiAgPGcKICAgICBpZD0idXVpZC1jM2NhNjg5MS02ZTE4LTQyY2ItODUyYi0zZGVkZDZjMzFlNjgiCiAgICAgdHJhbnNmb3JtPSJtYXRyaXgoNS4zMywwLDAsNS4zMywtNS4zMjk5OTc2LC01LjMyOTk5NzYpIj4KICAgIDxwYXRoCiAgICAgICBkPSJtIDI2LjQ0MjM4LDI1LjU1ODExIC0zLjc3Mzc0LC0zLjc3Mzc0IGMgMC41OTE0MywtMC43NzcwNCAwLjk1NjM2LC0xLjczNDggMC45NTYzNiwtMi43ODQzNiAwLC0yLjU1MDI5IC0yLjA3NTIsLTQuNjI1IC00LjYyNSwtNC42MjUgLTIuNTUwMjksMCAtNC42MjUsMi4wNzQ3MSAtNC42MjUsNC42MjUgMCwyLjU1MDI5IDIuMDc0NzEsNC42MjUgNC42MjUsNC42MjUgMS4wNDk0NCwwIDIuMDA3MjYsLTAuMzY0OTMgMi43ODQzNiwtMC45NTYzNiBsIDMuNzczMjUsMy43NzMyNSBjIDAuMTIyMDcsMC4xMjIwNyAwLjI4MjIzLDAuMTgzMTEgMC40NDIzOCwwLjE4MzExIDAuMTYwMTUsMCAwLjMyMDMxLC0wLjA2MTA0IDAuNDQyMzgsLTAuMTgzMTEgMC4yNDMxNiwtMC4yNDQxNCAwLjI0MzE2LC0wLjYzOTY1IDAsLTAuODgzNzkgeiBNIDE1LjYyNSwxOSBjIDAsLTEuODYwODQgMS41MTQxNiwtMy4zNzUgMy4zNzUsLTMuMzc1IDEuODYxMzMsMCAzLjM3NSwxLjUxNDE2IDMuMzc1LDMuMzc1IDAsMS44NjA4NCAtMS41MTM2NywzLjM3NSAtMy4zNzUsMy4zNzUgLTEuODYwODQsMCAtMy4zNzUsLTEuNTE0MTYgLTMuMzc1LC0zLjM3NSB6IgogICAgICAgZmlsbD0iI2VlMDAwMCIKICAgICAgIHN0cm9rZS13aWR0aD0iMCIKICAgICAgIGlkPSJwYXRoNyIgLz4KICAgIDxwYXRoCiAgICAgICBkPSJtIDI3LDEzLjYyNSBjIDEuNDQ3MjcsMCAyLjYyNSwtMS4xNzc3MyAyLjYyNSwtMi42MjUgMCwtMS40NDcyNyAtMS4xNzc3MywtMi42MjUgLTIuNjI1LC0yLjYyNSAtMS40NDcyNywwIC0yLjYyNSwxLjE3NzczIC0yLjYyNSwyLjYyNSAwLDAuNDk2NyAwLjE0NjYxLDAuOTU2NTQgMC4zODcyNywxLjM1MzAzIGwgLTEuMjA0NjUsMS4yMDUwOCBjIC0wLjI0NDE0LDAuMjQ0MTQgLTAuMjQzMTYsMC42Mzk2NSA5LjhlLTQsMC44ODM3OSAwLjEyMTA5LDAuMTIyMDcgMC4yODEyNSwwLjE4MzExIDAuNDQxNDEsMC4xODMxMSAwLjE2MDE2LDAgMC4zMjAzMSwtMC4wNjEwNCAwLjQ0MjM4LC0wLjE4MzExIGwgMS4yMDQxLC0xLjIwNDQ3IGMgMC4zOTY2MSwwLjI0MDkxIDAuODU2NjMsMC4zODc1NyAxLjM1MzUyLDAuMzg3NTcgeiBtIDAsLTQgYyAwLjc1NzgxLDAgMS4zNzUsMC42MTY3IDEuMzc1LDEuMzc1IDAsMC43NTgzIC0wLjYxNzE5LDEuMzc1IC0xLjM3NSwxLjM3NSAtMC4zNzgxMSwwIC0wLjcyMTA3LC0wLjE1MzY5IC0wLjk2OTk3LC0wLjQwMTczIC03LjNlLTQsLTcuM2UtNCAtOS44ZS00LC0wLjAwMTggLTAuMDAxNywtMC4wMDI2IC02LjFlLTQsLTYuMWUtNCAtMC4wMDE1LC03LjllLTQgLTAuMDAyMSwtMC4wMDE0IC0wLjI0NzYyLC0wLjI0ODc4IC0wLjQwMTE4LC0wLjU5MTM3IC0wLjQwMTE4LC0wLjk2OTMgMCwtMC43NTgzIDAuNjE3MTksLTEuMzc1IDEuMzc1LC0xLjM3NSB6IgogICAgICAgZmlsbD0iI2ZmZmZmZiIKICAgICAgIHN0cm9rZS13aWR0aD0iMCIKICAgICAgIGlkPSJwYXRoOSIgLz4KICAgIDxwYXRoCiAgICAgICBkPSJtIDE5LDguMzc1IGMgLTEuMTcxODgsMCAtMi4xMjUsMC45NTMxMiAtMi4xMjUsMi4xMjUgMCwxLjE3MTg4IDAuOTUzMTIsMi4xMjUgMi4xMjUsMi4xMjUgMS4xNzE4OCwwIDIuMTI1LC0wLjk1MzEyIDIuMTI1LC0yLjEyNSAwLC0xLjE3MTg4IC0wLjk1MzEyLC0yLjEyNSAtMi4xMjUsLTIuMTI1IHogbSAwLDMgYyAtMC40ODI0MiwwIC0wLjg3NSwtMC4zOTI1OCAtMC44NzUsLTAuODc1IDAsLTAuNDgyNDIgMC4zOTI1OCwtMC44NzUgMC44NzUsLTAuODc1IDAuNDgyNDIsMCAwLjg3NSwwLjM5MjU4IDAuODc1LDAuODc1IDAsMC40ODI0MiAtMC4zOTI1OCwwLjg3NSAtMC44NzUsMC44NzUgeiIKICAgICAgIGZpbGw9IiNmZmZmZmYiCiAgICAgICBzdHJva2Utd2lkdGg9IjAiCiAgICAgICBpZD0icGF0aDExIiAvPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTksMjUuMzc1IGMgLTEuMTcxODgsMCAtMi4xMjUsMC45NTMxMiAtMi4xMjUsMi4xMjUgMCwxLjE3MTg4IDAuOTUzMTIsMi4xMjUgMi4xMjUsMi4xMjUgMS4xNzE4OCwwIDIuMTI1LC0wLjk1MzEyIDIuMTI1LC0yLjEyNSAwLC0xLjE3MTg4IC0wLjk1MzEyLC0yLjEyNSAtMi4xMjUsLTIuMTI1IHogbSAwLDMgYyAtMC40ODI0MiwwIC0wLjg3NSwtMC4zOTI1OCAtMC44NzUsLTAuODc1IDAsLTAuNDgyNDIgMC4zOTI1OCwtMC44NzUgMC44NzUsLTAuODc1IDAuNDgyNDIsMCAwLjg3NSwwLjM5MjU4IDAuODc1LDAuODc1IDAsMC40ODI0MiAtMC4zOTI1OCwwLjg3NSAtMC44NzUsMC44NzUgeiIKICAgICAgIGZpbGw9IiNmZmZmZmYiCiAgICAgICBzdHJva2Utd2lkdGg9IjAiCiAgICAgICBpZD0icGF0aDEzIiAvPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMjcuNSwxNi44NzUgYyAtMS4xNzE4OCwwIC0yLjEyNSwwLjk1MzEyIC0yLjEyNSwyLjEyNSAwLDEuMTcxODggMC45NTMxMiwyLjEyNSAyLjEyNSwyLjEyNSAxLjE3MTg4LDAgMi4xMjUsLTAuOTUzMTIgMi4xMjUsLTIuMTI1IDAsLTEuMTcxODggLTAuOTUzMTIsLTIuMTI1IC0yLjEyNSwtMi4xMjUgeiBtIDAsMyBjIC0wLjQ4MjQyLDAgLTAuODc1LC0wLjM5MjU4IC0wLjg3NSwtMC44NzUgMCwtMC40ODI0MiAwLjM5MjU4LC0wLjg3NSAwLjg3NSwtMC44NzUgMC40ODI0MiwwIDAuODc1LDAuMzkyNTggMC44NzUsMC44NzUgMCwwLjQ4MjQyIC0wLjM5MjU4LDAuODc1IC0wLjg3NSwwLjg3NSB6IgogICAgICAgZmlsbD0iI2ZmZmZmZiIKICAgICAgIHN0cm9rZS13aWR0aD0iMCIKICAgICAgIGlkPSJwYXRoMTUiIC8+CiAgICA8cGF0aAogICAgICAgZD0ibSAxMi42MjUsMTkgYyAwLC0xLjE3MTg4IC0wLjk1MzEyLC0yLjEyNSAtMi4xMjUsLTIuMTI1IC0xLjE3MTg4LDAgLTIuMTI1LDAuOTUzMTIgLTIuMTI1LDIuMTI1IDAsMS4xNzE4OCAwLjk1MzEyLDIuMTI1IDIuMTI1LDIuMTI1IDEuMTcxODgsMCAyLjEyNSwtMC45NTMxMiAyLjEyNSwtMi4xMjUgeiBtIC0zLDAgYyAwLC0wLjQ4MjQyIDAuMzkyNTgsLTAuODc1IDAuODc1LC0wLjg3NSAwLjQ4MjQyLDAgMC44NzUsMC4zOTI1OCAwLjg3NSwwLjg3NSAwLDAuNDgyNDIgLTAuMzkyNTgsMC44NzUgLTAuODc1LDAuODc1IC0wLjQ4MjQyLDAgLTAuODc1LC0wLjM5MjU4IC0wLjg3NSwtMC44NzUgeiIKICAgICAgIGZpbGw9IiNmZmZmZmYiCiAgICAgICBzdHJva2Utd2lkdGg9IjAiCiAgICAgICBpZD0icGF0aDE3IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Ik0gMTMuMjM3NDMsMTIuMzUzNjQgQyAxMy40NzgzNCwxMS45NTcwMyAxMy42MjUsMTEuNDk2ODkgMTMuNjI1LDExIDEzLjYyNSw5LjU1MjczIDEyLjQ0NzI3LDguMzc1IDExLDguMzc1IDkuNTUyNzMsOC4zNzUgOC4zNzUsOS41NTI3MyA4LjM3NSwxMSBjIDAsMS40NDcyNyAxLjE3NzczLDIuNjI1IDIuNjI1LDIuNjI1IDAuNDk2ODksMCAwLjk1NzAzLC0wLjE0NjY3IDEuMzUzNjQsLTAuMzg3NTcgbCAxLjIwNDQ3LDEuMjA0NDcgYyAwLjEyMjA3LDAuMTIyMDcgMC4yODE3NCwwLjE4MzExIDAuNDQxODksMC4xODMxMSAwLjE2MDE1LDAgMC4zMTk4MiwtMC4wNjEwNCAwLjQ0MTg5LC0wLjE4MzExIDAuMjQ0MTQsLTAuMjQ0MTQgMC4yNDQxNCwtMC42Mzk2NSAwLC0wLjg4Mzc5IEwgMTMuMjM3NDIsMTIuMzUzNjQgWiBNIDkuNjI1LDExIGMgMCwtMC43NTgzIDAuNjE2NywtMS4zNzUgMS4zNzUsLTEuMzc1IDAuNzU4MywwIDEuMzc1LDAuNjE2NyAxLjM3NSwxLjM3NSAwLDAuMzc3OTkgLTAuMTUzNSwwLjcyMDU4IC0wLjQwMTEyLDAuOTY5MzYgLTcuOWUtNCw3LjllLTQgLTAuMDAxOSwxMGUtNCAtMC4wMDI3LDAuMDAxOCAtOGUtNCw3LjllLTQgLTAuMDAxLDAuMDAxOSAtMC4wMDE4LDAuMDAyNyBDIDExLjcyMDU4LDEyLjIyMTUgMTEuMzc3OTksMTIuMzc1IDExLDEyLjM3NSAxMC4yNDE3LDEyLjM3NSA5LjYyNSwxMS43NTgzIDkuNjI1LDExIFoiCiAgICAgICBmaWxsPSIjZmZmZmZmIgogICAgICAgc3Ryb2tlLXdpZHRoPSIwIgogICAgICAgaWQ9InBhdGgxOSIgLz4KICAgIDxwYXRoCiAgICAgICBkPSJtIDEzLjU1ODExLDIzLjU1ODExIC0xLjIwNDQ3LDEuMjA0NDcgQyAxMS45NTcwMywyNC41MjE2NyAxMS40OTY4OSwyNC4zNzUwMSAxMSwyNC4zNzUwMSBjIC0xLjQ0NzI3LDAgLTIuNjI1LDEuMTc3NzMgLTIuNjI1LDIuNjI1IDAsMS40NDcyNyAxLjE3NzczLDIuNjI1IDIuNjI1LDIuNjI1IDEuNDQ3MjcsMCAyLjYyNSwtMS4xNzc3MyAyLjYyNSwtMi42MjUgMCwtMC40OTY4OSAtMC4xNDY2NywtMC45NTcwMyAtMC4zODc1NywtMS4zNTM2NCBMIDE0LjQ0MTksMjQuNDQxOSBjIDAuMjQ0MTQsLTAuMjQ0MTQgMC4yNDQxNCwtMC42Mzk2NSAwLC0wLjg4Mzc5IC0wLjI0NDE0LC0wLjI0NDE0IC0wLjYzOTY1LC0wLjI0NDE0IC0wLjg4Mzc5LDAgeiBNIDExLDI4LjM3NSBjIC0wLjc1ODMsMCAtMS4zNzUsLTAuNjE2NyAtMS4zNzUsLTEuMzc1IDAsLTAuNzU4MyAwLjYxNjcsLTEuMzc1IDEuMzc1LC0xLjM3NSAwLjM3ODg1LDAgMC43MjIyOSwwLjE1Mzk5IDAuOTcxMTksMC40MDI1OSAyLjRlLTQsMi40ZS00IDIuNGUtNCw0LjllLTQgNC45ZS00LDcuM2UtNCAyLjVlLTQsMi40ZS00IDQuOWUtNCwyLjRlLTQgNy4zZS00LDQuOWUtNCAwLjI0ODYsMC4yNDg5IDAuNDAyNTksMC41OTIzNSAwLjQwMjU5LDAuOTcxMTkgMCwwLjc1ODMgLTAuNjE2NywxLjM3NSAtMS4zNzUsMS4zNzUgeiIKICAgICAgIGZpbGw9IiNmZmZmZmYiCiAgICAgICBzdHJva2Utd2lkdGg9IjAiCiAgICAgICBpZD0icGF0aDIxIiAvPgogIDwvZz4KPC9zdmc+Cg==
Loading
Loading